c# - WCF:App.config 中的配置是否比自定义代理类中的硬编码更好?

标签 c# .net wcf

首先this不是重复的。我有一个不同的问题。

在客户端(或跨平台项目的客户端)的 App.config 文件中删除 WCF 的配置并将其替换为注入(inject)的 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 完全是为了灵 active 和通过 App.config flie 轻松配置。

最佳答案

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

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

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

Here同一主题的另一次讨论。 (类似的推理,问题仍然存在;您是否需要配置灵 active )。

关于c# - WCF:App.config 中的配置是否比自定义代理类中的硬编码更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34105075/

相关文章:

c# - 使用正则表达式从 SQL 查询中提取表和列

c# - 关闭wire-shark后无法接收UDP包

c# - DDD : guidance on updating multiple properties of entities

c# - 我可以让 WebApi 与 IoC Aspects/Interceptor 一起工作吗

c# - WCF 中的 System.AddIn

c# - 使用 async/await 调用 WCF 服务的模式

c# - AvalonDock 在文档关闭时导致崩溃

c# - 无法使用 Nuget Package Restore 将 Newtonsoft.Json 从 10.0.1 更新到 10.0.2

c# - 中继器内的 DropDownList : How to handle SelectedIndexChange and get DataItem?

c# - GetBytes() 只能在二进制或 GUID 列上调用