![]() |
1
21
我添加了一个 write-up of this solution 我的博客。同样的信息真的,但也许不那么分散
我找到了一种替代方法
应在ServiceContract和DataContracts上显式指定命名空间URI。( 请参阅下面的评论。 )
名称空间可以是任何东西,但从技术上讲,它需要是一个有效的URI,所以我选择了这个方案。您可能需要手动构建,以便稍后工作,所以请这样做。
完成后,启用
显示所有文件
解决方案资源管理器中的选项。展开先前添加的服务引用。双击
将会有一个
保存文件,右键单击服务引用并选择 更新服务引用 .
您可以根据需要添加任意多的映射(我实际上需要两个映射)。效果与
与svcutil的区别
这种方法的缺点是需要使用显式名称空间映射。使用
你可能会想使用:
但这将 不 工作,因为Visual Studio已经隐式地添加了这个映射,指向我们正试图摆脱的生成的命名空间名称。上述配置将导致Visual Studio投诉重复的密钥。
AD显式命名空间
:
注意:将两个targetnamespace映射到同一clrnamespace似乎会中断代码生成。 |
![]() |
2
1
你的用例错了。 首先,您不应该将该服务作为参考。 我相信svcutil.exe将接受指定要使用的完整命名空间的开关。 |
![]() |
3
0
在VS2010和更高版本中,有一种方法可以设置自定义命名空间。 在解决方案资源管理器中,选择“显示所有文件”,然后在解决方案树中打开“Web引用”,选择服务,选择reference.map节点,显示属性并设置 自定义工具命名空间属性。 不幸的是,我没有足够的声誉来显示截图。 |
|
dantz · SVCUtil.exe自动生成的服务无法显示元数据 10 年前 |