0

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

两种服务都使用:

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

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

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

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

请注意:

  • 我正在使用 svcutils
  • 命名空间选项不起作用。

谢谢

4

2 回答 2

1

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

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

于 2013-04-04T18:49:38.527 回答
1

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

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

于 2013-04-04T18:57:50.873 回答