WCF FaultException命名冲突

时间:2013-04-04 09:40:58

标签: c# wcf svcutil.exe

我有2个WCF服务(不同的项目)共享一个定义了MyExceptions的类库。

两项服务均使用:

[OperationContract]
[FaultContract(typeof(MyException))]
void op();

当我在客户端项目中添加两个引用时,我得到:

  

类型namespace.MyException已经定义了一个名为MyException的成员   具有相同的参数类型。

基本上这些类具有相同的名称,因此构造函数定义了两次。 有关如何更改Exception名称空间的任何想法吗?

请注意:

  • 我正在使用svcutils
  • 命名空间选项无效。

由于

2 个答案:

答案 0 :(得分:1)

除了名称空间建议外,可以做的是编辑SVCUTIL生成的代理代码,并删除MyException类的重复代码。

步骤: 1.为Service1创建代理文件。 2.为Service2创建代理文件。 3.将代理添加到客户端。 4.编译并给出已经声明MyException的错误。 5.编辑其中一个代理并删除MyException类代码。

答案 1 :(得分:1)

使用svcutil /reference:SharedLibrary.dll创建代理。这种方式svcutil不会生成它在SharedLibrary.dll中找到的类,因此客户端使用程序集中的类定义。

如果您还没有在客户端项目中添加对DLL的引用,请不要忘记。