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