将对象或结构传递给 .asmx Web 服务
本文关键字:asmx Web 服务 对象 结构 | 更新日期: 2023-09-27 18:32:13
您知道将对象或结构从 winform 应用程序传递到 .asmx Web 服务的好方法吗?似乎这在 .NET 中应该很容易,但我没有看到它。
Rick Strahl在2004年也有同样的问题,但看起来我正在寻找的东西可能不存在:
http://www.west-wind.com/weblog/posts/2004/Apr/18/Net-Web-Services-and-passing-objects-and-Data
基本上,我只有一个包含 10 个字符串或 int 成员的简单结构。我想将其发送到 asmx Web 服务并保持强类型完好无损。就是这样。
我尝试在客户端和服务上定义结构。然后,我创建了一个包含结构定义的 DLL,并将其包含在我的 Web 服务和客户端中。仍然有问题 b/c命名空间不同。
我在下面的帖子中看到,似乎人们正在做我所描述的事情。我只是不知道如何:
通过 Web 服务传递对象
如果这更容易,我可以将服务转换为 WCF - 无论如何可能会在几个月内转换它。
为什么我没有早点想到它,但杰里米的回应有所帮助。我没有在客户端和服务上创建对象的定义,而只是在 Web 服务上公开了结构的定义。当我创建一个结构时,我只需确保它是global::Webservice.com.mydomain.MyStruct的类型。
你试过什么?您遇到哪些错误?你的代码是什么样的?
但是,您可能需要将要向其实例传递给 Web 服务的类标记为[Serializable]
(MSDN),如下所示:
[Serializable]
public class MyObject
{
// Your properties here
// Your parameterless constructor
}
请注意,在序列化期间,将删除除默认(无参数)构造函数和属性之外的所有内容。这是因为在将对象传递给 Web 服务时,您实际上不是在传递 .NET 对象,而是在传递(序列化的)数据。相应的类型应通过服务合同提供。