首先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/