我的服务使用另一个DLL中定义的类型Foo,我的客户端也使用该DLL来获取该类型。我不想为该类型生成代理类,而是希望代理代码只引用实际类型。我可以通过在正在运行的服务上使用WSDL.EXE生成代理,手动编辑其中的部分类Foo定义,以及添加Using语句来手动完成此操作。如果可能的话,我不想手工编辑。
似乎答案可能是使用SVCUTIL.EXE而不是WSDL.EXE。有两个有趣的选项:/ R和/ ET。我尝试将/ ET:Foo和/ET:My.FQN.Util.Foo和/ET:www.my.com.the.servicenamespace.Foo,并将DLL文件名添加到该选项。但是在创建的ServiceWithFoos.cs代理类中没有任何变化。 Foo的部分类定义仍在那里。
我是否在正确的轨道上?我做错了什么?
答案 0 :(得分:0)
将[DataContract(Namespace = "http://anything.here")]
添加到您的Foo类型,然后使用带有/ r选项的svcutil获取包含Foo的库的路径。这样svcutil应该看到相同的合约命名空间并正确映射Foo。