我有一个WCF服务,当我使用VS.NET 2012通过Add Service Reference...
选项添加对它的引用时,我在对话框的底部指定一个命名空间(即`MyNameSpace')
这会在自动生成的Reference.cs
类中生成以下前几行代码:
namespace MyProject.MyNameSpace {
using System.Runtime.Serialization;
using System;
//Lots of auto generated proxy class code...
}
问题是当我使用svcutil.exe
实用程序手动生成代理类时,我没有获得该命名空间,并且在构建时遇到以下错误的 ton : / p>
类型或命名空间名称“MyNameSpace”不存在于 命名空间'MyProject'(您是否缺少程序集引用?)
所以我尝试了以下(2)的事情并且都没有效果:
namespace MyProject.MyNameSpace {}
实用程序中围绕生成的Reference.cs
类手动添加简单的svcutil.exe
声明。使用/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)
注意命名空间中的重复;这是一个问题。