Web services 通过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

我在C#.NET中有一个具有以下命名空间的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:

<? 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>