1

我有一个.net webservice(passthrough WS),它传递到另一个(底层WS),传递一个特定的自定义对象。两个 WS 都包含带有特定自定义对象类的程序集,但是当我将底层 WS 的服务引用添加到直通 WS 时,.net 在直通 WS 命名空间中生成它自己的此类类型。这意味着我必须在不同的命名空间中使用这个另一个对象,而不是它真正的名字——真正复制“真正的”类/对象。也许我没有很好地解释这一点。

我可以猜测手动进入.net生成的服务类并用“正确”的对象替换生成的对象,但是每次更新基础服务时我都必须这样做。至少可以说有点痛苦。这显然也会影响返回类型以及调用 webmethods 的参数.. dagnamit!

有没有解决的办法?理想情况下,我希望两个 WS 都使用相同的对象。还是我必须将构造函数添加到生成的对象中,这些对象采用底层对象并分配所有类似的属性?- 我希望不是....

我意识到 WS 必须是独立于平台的,使用的类型不仅可以从 .net 或其他任何地方访问。所以确保您只使用这些基本类型而不是将它们全部包装在自定义对象中的想法是,将所有这些“属性”作为单独的参数传递?非常感谢任何帮助

谢谢

纳特

4

1 回答 1

2

如果您使用的是旧式(又名老派)ASP.NET Web 服务,您基本上有 2 个选项:

  1. 将它们转换为 WCF 服务并使用服务引用(而不是简单的引用)来使用它们。WCF 服务支持类的重用

  2. 如果您想继续使用遗留的 Web 服务技术,您将不得不通过自定义代理类的生成方式来艰难地前进。

于 2011-03-04T13:36:50.807 回答