我真的陷在这个问题上:我在类BigStorage
中有一些数据
以及GUI中的一些操作。我需要将数据从此类传递到Web服务,并获取答案并进行处理。
我已经编译了一个包含此BigStorage类定义的dll,并将其提供给我们的网站管理员-他使用了该类并将结果返回给我。但是我收到了这个结果webRefName.BigStorage
,不等于我的BigStorage
(它们具有不同的名称空间)。
顺便说一句,当在我的BigStorage中,这个webRefName.BigStorage
中的一个私有字段是typeof DataSet
(?!)时,它具有我自己定义的类型(我为此添加了xml序列化)。
有没有一种方法可以执行以下操作:
webRefName.BigStorage bS = (webRefName.BigStorage) bSfromLocalProject;
//where bSfromLocalProject typeof BigStorage
另外,为什么Reference.cs中的该字段(请参见上文)是DataSet?
最佳答案
从网络引用生成的类型是从可用元数据(wsdl)生成的浅层代理类型。它们与原始类型不同,并且不能互换使用。可以将名称空间配置为Web引用属性的一部分,但使其相等将无法完成此工作。
如果另一端使用的是原始程序集,请考虑使用Web服务参考(即WCF)。这具有重用现有类型的选项,这意味着它可以使用现有dll引用中的类型。然后它们是完全可互换的(或更准确地说,它们是同一件事-因此没有可互换的内容)。
关于c# - WebReference生成的 namespace ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11776985/