我有一个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)的事情并且都没有奏效:
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)
注意命名空间中的重复 ; 这是一个问题.
| 归档时间: |
|
| 查看次数: |
2888 次 |
| 最近记录: |