System.ServiceModel.Clientbase.Open()有什么作用?我从没使用过它,只是在一些代码中遇到了它。会抛出异常吗?如果不调用Close(),是否有问题?
最佳答案
如果为WCF服务创建代理,则该代理实际上是ClientBase
我的应用程序中的示例:
public class DataClient : ClientBase<Classes.IDataService>, Classes.IDataService
{
public DataClient(string connectToHost)
: base(new NetTcpBinding(SecurityMode.Transport)
{
PortSharingEnabled = true,
Security = new NetTcpSecurity()
{
Transport = new TcpTransportSecurity()
{
ClientCredentialType = TcpClientCredentialType.Windows
}
}
},
new EndpointAddress(string.Format("net.tcp://{0}:5555/MyService",connectToHost)))
{ }
#region IDataService Members
public Classes.Folder GetFolder(string entryID)
{
return Channel.GetFolder(entryID);
}
public Classes.IItem GetItem(string entryID)
{
return Channel.GetItem(entryID);
}
#endregion
}
编辑
根据您的要求,我在Google上做了一些搜索,找到了this:
这导致this:
此外,根据经验以及我在网上遇到的不关闭客户的情况,可能导致各种形式的陌生情况发生,因此通常被认为是“A Bad Thing”。