我在用下面的命名空间C#.NET web服务:通过Web服务传递序列化对象与传递对象
[WebService (Namespace = "http://enterpriseName/wsName")]
Web服务包含一个WebMethod GetServiceObject和一类的MyObject。 此Web方法返回一个字符串,其内容是MyObject的序列化实例。
[WebMethod (MessageName = "GetServiceObjectXML" Description = "Get ServiceObject from Server to Client")]
public string GetServiceObjectXML()
此方法返回下面的XML:
<? Xml version = "1.0" encoding = "utf-16"?>
<ServiceObject Xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Services>
<service>
<id>3</id>
<date>02/08/2010</date>
</service>
</Services>
</ServiceObject>
,我遇到的问题是,当我打电话从客户端这种方法,并尝试反序列化这个XML类MyObject来和我得到一个NULL对象。
之后,我创建了一个新的WebMethod具有以下特征:
[WebMethod (MessageName = "GetServiceObject" Description = "Get ServiceObject from Server to Client")]
public MyObject GetServiceObject()
当我打电话从客户端我得到的对象填写正确,我也可以序列化对象没有问题这种方法,但序列化结果如下xml:
<? Xml version = "1.0" encoding = "utf-16"?>
<ServiceObject Xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Services Xmlns="http://enterpriseName/wsName">
<service>
<id>3</id>
<date>02/08/2010</date>
</service>
</Services>
</ServiceObject>
它与WebMethod GetServiceObjectXML生成的xml不同。
如何解决这个问题,因为我打算在同一个webservice上和同一个客户上使用这两种方法?