Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用WCF解决方案的分部类_C#_.net_Wcf - Fatal编程技术网

C# 使用WCF解决方案的分部类

C# 使用WCF解决方案的分部类,c#,.net,wcf,C#,.net,Wcf,我正在尝试使用变通方法来正确处理WCF客户端,以便可以在using语句中包装对客户端的调用 因此,在我的集成层,我添加了一个服务引用,并给出了外部服务所在的svc地址 在服务引用MyExternalService中创建了一个文件夹,其中包含MyExternalService.disco、MyExternalService.wsdl、Reference.svcmap等 在服务引用文件夹中,我创建了一个名为MyExternalServiceClient的类,如下所示: public partial

我正在尝试使用变通方法来正确处理WCF客户端,以便可以在using语句中包装对客户端的调用

因此,在我的集成层,我添加了一个服务引用,并给出了外部服务所在的svc地址

在服务引用MyExternalService中创建了一个文件夹,其中包含MyExternalService.disco、MyExternalService.wsdl、Reference.svcmap等

在服务引用文件夹中,我创建了一个名为MyExternalServiceClient的类,如下所示:

public partial class MyExternalServiceClient : IDisposable
{
    void IDisposable.Dispose()
    {
        bool success = false;
        try
        {
            if (State != CommunicationState.Faulted)
            {
                Close();
                success = true;
            }
        }
        finally
        {
            if (!success)
            {
                Abort();
            }
        }
    }
}
我遇到的问题是resharper告诉我带有单个部分的分部类。并且无法解析状态关闭和中止符号-即使使用此.State-我在类顶部的using语句是:

using System;
using System.ServiceModel;
确保:

  • 分部类定义位于同一程序集中

  • 您正在使用服务引用的命名空间:

  • 例如:

    namespace XXX.YYY.ZZZMyExternalServiceOrWhatever
    {
        /// <summary>
        /// Partial definition of MyExternalServiceClient.
        /// </summary>
        public partial class MyExternalServiceClient : IDisposable
        {
            /// <summary>
            /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            /// </summary>
            void IDisposable.Dispose()
            {
                bool success = false;
                try
                {
                    if (this.State != CommunicationState.Faulted)
                    {
                        this.Close();
                        success = true;
                    }
                }
                finally
                {
                    if (!success)
                    {
                        this.Abort();
                    }
                }
            }
        }
    }
    
    名称空间XXX.YYY.zzzmyExternalService或其他名称
    {
    /// 
    ///MyExternalService客户端的部分定义。
    /// 
    公共部分类MyExternalService客户端:IDisposable
    {
    /// 
    ///执行与释放、释放或重置非托管资源相关的应用程序定义的任务。
    /// 
    void IDisposable.Dispose()无效
    {
    布尔成功=假;
    尝试
    {
    if(this.State!=CommunicationState.Faulted)
    {
    这个。关闭();
    成功=真实;
    }
    }
    最后
    {
    如果(!成功)
    {
    这是Abort();
    }
    }
    }
    }
    }