【发布时间】:2016-03-10 08:58:10
【问题描述】:
首先this 不是重复的。我有一点不同的问题。
在客户端(或跨平台项目的客户端)中删除 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 flye 实现灵活性和轻松配置。
【问题讨论】: