使用svcutil.exe生成与添加服务引用相同的命名空间

atc*_*way 5 wcf svcutil.exe

我有一个WCF服务,当我通过Add Service Reference...选项使用VS.NET 2012添加对它的引用时,我在对话框的底部指定一个命名空间(即`MyNameSpace')

这会在自动生成的Reference.cs类中生成以下前几行代码:

namespace MyProject.MyNameSpace {
    using System.Runtime.Serialization;
    using System;

//Lots of auto generated proxy class code...

}
Run Code Online (Sandbox Code Playgroud)

问题是,当我使用svcutil.exe实用工具手动生成的代理类,我没有得到该命名空间,我得到建设时出现以下错误:

命名空间"MyProSpject"中不存在类型或命名空间名称"MyNameSpace"(您是否缺少程序集引用?)

所以我尝试了以下(2)的事情并且都没有奏效:

  1. 从实用程序手动namespace MyProject.MyNameSpace {}在生成的Reference.cs类周围添加一个简单声明svcutil.exe.
  2. 使用带有以下内容的/n"命名空间"开关svcutil.exe:/n:http://schemas.datacontract.org/2004/07/MyNameSpace,MyNameSpace它不起作用并生成以下内容:

    使用System.Data;

    [assembly:System.Runtime.Serialization.ContractNamespaceAttribute(" http://schemas.datacontract.org/2004/07/MyNameSpace ",ClrNamespace ="MyNameSpace")]

好吧,这也没有用,并添加了排序的名称空间声明属性,但不像namespace以前那样添加了包装器.

如何在生成代理类时使用svcutil.exe,将相同的namespace内容添加到生成的类中,因此当插回到我的项目中时,所有内容都按预期构建?

编辑:使用以下命名空间切换我得到了所需的命名空间,但我的方法中的重复声明导致另一个问题:

命名空间:/n:*,MyProject.MyNameSpace
现在代理问题:public bool MyMethod(MyProject.MyNameSpace.MyProject.MyNameSpace.MyRecord record)

注意命名空间中的重复 ; 这是一个问题.