首先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(使用前将#替换为@)