您是否知道将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名称空间不同。
我在以下帖子中看到人们正在做我正在描述的事情。我只是不知道如何:
Passing Objects Via Web Service
我可以将服务转换为WCF,如果这样可以更容易 - 可能会在几个月后转换它。
答案 0 :(得分:1)
我不知道为什么我之前没有想到它,但杰里米的回应得到了帮助。我没有在客户端和服务上创建对象的定义,而是公开了Web服务上的结构定义。当我创建一个结构时,我只是确保它的类型是global :: Webservice.com.mydomain.MyStruct。
答案 1 :(得分:0)
你有什么尝试?你遇到了什么错误?您的代码如何?
但是,您可能需要将要将实例传递给Web服务的类标记为[Serializable]
(MSDN),如下所示:
[Serializable]
public class MyObject
{
// Your properties here
// Your parameterless constructor
}
请注意,序列化期间将删除除默认(无参数)构造函数和属性之外的所有内容。这是因为在将对象传递给Web服务时,实际上并不传递.NET对象而是传递(序列化)数据。 应通过服务合同提供相应的类型。