1

我的服务使用在另一个 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 的部分类定义仍然存在。

我在正确的轨道上吗?我究竟做错了什么?

4

1 回答 1

0

添加[DataContract(Namespace = "http://anything.here")]到您的 Foo 类型,然后使用 svcutil 和 /r 选项获取包含 Foo 的库的路径。这样 svcutil 应该会看到相同的合约命名空间并正确映射 Foo。

于 2010-05-17T19:34:55.447 回答