WCF:App.config 中的配置比自定义代理类中的硬编码更好吗?

2024-04-29

首先this https://stackoverflow.com/q/6761105/5593152不重复。我有一个有点不同的问题。

删除客户端(或跨平台项目中的客户端)App.config 文件中的 WCF 配置并将其替换为注入的配置是一个好习惯吗?Proxy类(来自不同的 dll,为所有客户端共享)?

我刚刚开始,所以我的配置文件并不大,但这里是一个例子:

App.config(WCF部分):

<system.serviceModel>
  <client>
    <endpoint address="net.tcp://localhost:8002/MyService"
              binding="netTcpBinding"
              contract="CallbackExample.Client.IMyService" />
  </client>
</system.serviceModel>

我必须有这个代码复制并粘贴融入我做的每一个客户。使用 Xamarin,我可以在单个 VS 解决方案中使用 C# 编写许多客户端。所以我想,为什么不直接摆脱system.serviceModel部分并执行以下操作:

MyServiceProxy.cs:

public class MyServiceProxy : ClientBase<IMyService>, IMyService
{
    public MyServiceProxy()
        : base(new NetTcpBinding(), new EndpointAddress("net.tcp://localhost:8002/MyService"))
    {
    }

    public int JustAMethod()
    {
        return Channel.JustAMethod();
    }
}

这样,我就可以将配置放在一个地方。

所以,我的问题是:这被认为是一个好的做法吗?有没有更好的办法?我不确定,因为 WCF 就是通过 App.config flie 实现灵活性和简单配置。


如果不需要额外的配置,我总是选择纯代码解决方案。

过去,通过 app.conf 配置 WCF 稍微复杂一些。随着ServiceHost您甚至可以用纯代码配置 WCF 服务。

这同样适用于 WCF 客户端;如果您不需要通过配置文件为您的用户配置它:我会说选择纯代码解决方案。

Here https://stackoverflow.com/questions/10337573/pros-and-cons-of-wcf-config-file-vs-in-code-config同一主题的另一次讨论。 (类似的推理,问题仍然存在;您是否需要配置灵活性)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WCF:App.config 中的配置比自定义代理类中的硬编码更好吗? 的相关文章

  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • IIS 7.5 托管的 WCF 服务仅针对大型请求抛出 EndpointNotFoundException 和 404

    我有一个 WCF REST 服务托管在 IIS 7 5 Windows 2008 R2 上 该服务按预期工作 除非客户端尝试发送大于 25 MB 的消息 具体来说 当发送大小约为 25 MB 的消息时 服务会正确接收并处理消息 而当发送大小
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • VB.NET 中的静态方法实现

    我很困惑Static在 VB NET 中的实现 在 C 中 我们可以创建静态类和静态方法来为我们的应用程序编写实用方法 现在 VB NET 让我们创建Module代替静态类 如果我们在模块中创建一个方法 默认情况下它会变成静态的 但在我的应
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat

随机推荐

  • XML 到字符串列表

    我有一些代码需要放入 C 中的字符串列表中 我正在从 XML 文件中读取这些代码 它的布局如下所示
  • 使用动态 SQL 检索表结构

    我正在迁移数据库 并尝试将表结构信息检索到单个行项目中以进行机器处理 由于技术原因 现有的迁移工具无法使用 必须采用这种方式处理 我已在多个表上成功运行以下查询 SELECT LISTAGG column name data type da
  • 设置最大 CUDA 资源

    我想知道是否可以设置 CUDA 应用程序的最大 GPU 资源 例如 如果我有一个 4GB GPU 但希望给定的应用程序只能访问 2GB 如果它尝试分配更多 就会失败 理想情况下 这可以在进程级别或 CUDA 上下文级别上设置 不 目前没有允
  • Facebook 从应用程序选项卡获取用户 ID

    Facebook 应用程序可以有一个选项卡 用户可以根据需要将其添加到其个人资料的选项卡中 我如何获取 uid 或以其他方式识别当前登录的用户以便为他自定义布局 谢谢 如前所述here http developers facebook co
  • 使用 Loggly 时在 log4net 中指定应用程序名称

    我正在测试几个 ASP NET Web 应用程序 并使用 Log4net 的附加程序通过 Loggly 设置它们 现在 日志记录似乎没问题 但我似乎找不到一种方法 使用 log4 loggly 附加程序 来指定应用程序名称 以便当我在 Lo
  • 如何列出运行时函数的所有调用?

    有什么办法可以list 在VS中显示 写入文件 所有来电者 对象 函数 一个函数的当程序运行时 可能使用调试器 我需要record 所有通话 包括来电者 一个函数的从计划启动到终止 简单扫描源代码或二进制文件不做这份工作因为该程序可以作为服
  • 如何用VB.net生成pdf文件?

    我想生成一个非常简单的报告 其中包含一些图像和文本 我想知道是否有一种方法可以使用 vb net 生成 pdf 文件 您可以使用 Visual Studio 附带的 Crystal Reports 对象导出到 PDF 文件
  • Java 切片数组与 Python 中一样

    我有一个 Java 字节数组 需要获取其中的一部分 我想以与使用 Python 列表相同的方式使用 Java 数组 即使用切片 Java中有类似的东西吗 先感谢您 您可以使用数组 https docs oracle com en java
  • Tkinter:为按钮和标签制作“类”

    因此 我在 tkinter 框架中几乎有许多不同的按钮和标签 并且我都希望它们具有相似的属性 假设我希望它们全部具有红色前景色 并具有透明背景 我什至可以这样做吗 这个透明背景仅适用于按钮 我可不可以有一个class对于按钮 我认为这是在
  • match_none 有什么用?

    我浏览了docs https www elastic co guide en elasticsearch reference current query dsl match all query html query dsl match no
  • UML三元关联实现java代码[重复]

    这个问题在这里已经有答案了 三元关联是结构关系 指定一个事物的对象连接到其他两个事物的对象 我理解这种关系 但我不知道如何实现显示这三个类之间关联的方法 让我们考虑下面的例子 项目有许多使用特定编程的开发人员 语言促进发展 开发人员使用特定
  • 使用酶测试反应确认窗口

    我在 React 中有一个按钮 当用户单击它时 它会打开一个简单的确认窗口 在我添加confirm方法之前 下面的测试是绿色的 添加后确认它是红色的 我需要如何更改测试才能与附加确认一起使用 反应删除按钮 const DeleteButto
  • Django 的 TEMPLATE_DEBUG 设置有什么用?

    我一直在尝试查找有关此设置的信息 但信息不多 有人可以解释一下这个设置是什么吗 我应该在生产中关闭它吗 只是想了解它 也许我错过了 django 中的一些重要内容 我使用django 1 6 此设置有助于调试渲染模板时引发的错误 异常 如果
  • 使用 HornetQ (JBoss) 在 docker 容器上公开的 JMS 所需的端口

    我正在使用 Docker 将 JMS 服务器容器链接到另一个 JMS 客户端容器 但是当我在docker容器中运行服务器时 客户端无法正确连接到服务器 我在docker上暴露了端口443 JMS还有其他使用的端口吗 我可以成功创建目标 但不
  • pybtex 是否支持 .bib 文件中的重音/特殊字符?

    from pybtex database input import bibtex parser bibtex Parser bibdata parser parse file sample bib 上面的代码片段在解析 bib 文件时效果非
  • 如何在Delphi 7中监听麦克风并检测声音响度

    我需要一个程序来捕获麦克风输入声音超过特定阈值时的事件 那么我可能需要不断地听麦克风 并以某种方式测量声音幅度 Delphi 7 中可以这样做吗 我建议您使用低音音频库 http www un4seen com bass html http
  • 如何用 DefaultErrorHandler 替换已弃用的 SeekToCurrentErrorHandler (spring-kafka)?

    我正在尝试找到一种方法来使用新的 DefaultErrorHandler 而不是 spring kafka 2 8 1 中已弃用的 SeekToCurrentErrorHandler 以便在出现错误时覆盖重试默认行为 我想 停止 重试过程
  • 类型 '' 不能用作泛型类型或方法中的类型参数 'T'

    我创建了这个通用方法 public IEnumerable
  • python 文档字符串中的这些标签 @ivar @param 和 @type 是什么?

    ampoule 项目在文档字符串中使用一些标签 例如 javadoc 标签 例如来自pool py http bazaar launchpad net dialtone ampoule main annotate 26 file id po
  • WCF:App.config 中的配置比自定义代理类中的硬编码更好吗?

    首先this https stackoverflow com q 6761105 5593152不重复 我有一个有点不同的问题 删除客户端 或跨平台项目中的客户端 App config 文件中的 WCF 配置并将其替换为注入的配置是一个好习