Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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
Wcf 我可以从同一个类引用DataContract及其代理版本吗_Wcf_C# 4.0 - Fatal编程技术网

Wcf 我可以从同一个类引用DataContract及其代理版本吗

Wcf 我可以从同一个类引用DataContract及其代理版本吗,wcf,c#-4.0,Wcf,C# 4.0,我正在深入研究WCF,并试图创建一个简单的测试项目,既可以将服务作为服务使用,也可以直接实例化它的类并使用它们 我有一个早期的工作版本,其中传递的数据只是基本类型。然而,当我试图转换为使用数据契约时,我遇到了冲突,它是引用代理声明的契约版本还是引用项目本身的版本 问题:是否可以这样做?如果可以,我将如何解析数据契约引用 private void Test() { MyService fssDirect = new MyService(); // direc

我正在深入研究WCF,并试图创建一个简单的测试项目,既可以将服务作为服务使用,也可以直接实例化它的类并使用它们

我有一个早期的工作版本,其中传递的数据只是基本类型。然而,当我试图转换为使用数据契约时,我遇到了冲突,它是引用代理声明的契约版本还是引用项目本身的版本

问题:是否可以这样做?如果可以,我将如何解析数据契约引用

    private void Test()
    {

        MyService fssDirect = new MyService();    // direct instantiation
        MyServiceClient fssService = new MyServiceClient();    // Service proxy

        ClientCredentialsContract Client = new ClientCredentialsContract();
        ResponseDataContract Result = new ResponseDataContract();

        if (CallAsService)
        {
            Result = fssService.Create(Client, Request);
        }
        else
        {
            Result = fssDirect.Create(Client, Request);
        }
    }
在上面,对RequestDataContract和ClientCredentialsContract类型的任何引用都表明

警告:“C:…\Test\MyServiceProxy.cs”中的类型“MyContracts.RequestDataContract”与“C:…\MyService\bin\Debug\Contracts.dll”中导入的类型“MyContracts.RequestDataContract”冲突。使用“C:…\Test\MyServiceProxy.cs”中定义的类型

(名称更改,路径缩短,以保护无辜)

谢谢


John

为服务创建代理时,请尝试引用包含数据协定的程序集(如果使用“添加服务引用”,请转到高级选项,选择“在引用的程序集中重用类型”;如果使用svcutil,请使用
/r
参数)。这样,该工具就不会生成数据契约,也不会产生冲突