我有2个WCF服务(不同的项目)共享一个定义了MyExceptions的类库。
两项服务均使用:
[OperationContract]
[FaultContract(typeof(MyException))]
void op();
当我在客户端项目中添加两个引用时,我得到:
类型namespace.MyException已经定义了一个名为MyException的成员 具有相同的参数类型。
基本上这些类具有相同的名称,因此构造函数定义了两次。 有关如何更改Exception名称空间的任何想法吗?
请注意:
由于
答案 0 :(得分:1)
除了名称空间建议外,可以做的是编辑SVCUTIL生成的代理代码,并删除MyException类的重复代码。
步骤: 1.为Service1创建代理文件。 2.为Service2创建代理文件。 3.将代理添加到客户端。 4.编译并给出已经声明MyException的错误。 5.编辑其中一个代理并删除MyException类代码。
答案 1 :(得分:1)
使用svcutil /reference:SharedLibrary.dll
创建代理。这种方式svcutil
不会生成它在SharedLibrary.dll
中找到的类,因此客户端使用程序集中的类定义。
如果您还没有在客户端项目中添加对DLL的引用,请不要忘记。