我在两个不同的服务器上有两个“相同”的two服务(Soap)。不要问为什么:-)
WebService-1决定是自己处理请求,还是将请求传递给WebService-2。如果是,则应直接从WebService-1返回WebService-2的响应。
响应数据类型很复杂,而且是自定义的。对于像'int‘或'string’这样的简单数据类型,就不会有任何问题。
WebService-2的响应是一个序列化的对象(我认为它被称为“存根”),因此不可能将此对象作为WebService-1的响应传递,因为对象的类型不匹配。
有没有一种简单的方法可以将序列化的数据类型转换为其原始类型,而无需构建复杂的转换器?
发布于 2010-05-06 18:03:00
是的-如何实现这一点取决于您使用的是WCF还是旧式Web服务。
本质上,您希望web引用工具(分别为svcutil.exe或wsdl.exe )识别web服务的结果实际上是一个“众所周知的”对象类型-就像它对许多核心框架对象所做的那样。
在WCF中,这通常是通过确保协定保存在引用的程序集中,并用命名空间属性进行修饰来实现的。如果你这样做,当你添加一个引用到你的when服务时,它应该在本地使用你的类,而不是生成一个类似的代理类。
如果你正在使用老式的web服务,你将不得不考虑使用SchemaImporter项目-这将允许wsdl.exe工具识别你的类型并正确地使用它们。值得一提的是,这只在设计时是必需的-在部署期间不需要这样的措施。
https://stackoverflow.com/questions/2780138
复制相似问题