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”。

10-06 07:35