Web services 通过web服务传递序列化对象与传递对象
我在C#.NET中有一个具有以下命名空间的Web服务:Web services 通过web服务传递序列化对象与传递对象,web-services,serialization,namespaces,Web Services,Serialization,Namespaces,我在C#.NET中有一个具有以下命名空间的Web服务: [WebService (Namespace = "http://enterpriseName/wsName")] web服务包含一个WebMethod GetServiceObject和一个类MyObject。 此web方法返回一个字符串,其内容是MyObject的序列化实例 [WebMethod (MessageName = "GetServiceObjectXML" Description = "Get ServiceObject
[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:
<? 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>
3.
02/08/2010
这与WebMethod GetServiceObjectXML生成的xml不同
既然我打算在同一个Web服务和同一个客户上使用这两种方法,我该如何解决这个问题呢?显而易见的答案是,修复GetServiceObjectXML()以返回与GetServiceObject()相同的XML。区别似乎在于,由框架序列化的对象指定了不同的XML名称空间。在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 Xmlns="http://enterpriseName/wsName">
<service>
<id>3</id>
<date>02/08/2010</date>
</service>
</Services>
</ServiceObject>