【发布时间】:2010-08-06 17:57:24
【问题描述】:
我在 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 反序列化为 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不同。
由于我打算在同一个 Web 服务和同一个客户中使用这两种方法,我该如何解决这个问题?
【问题讨论】:
标签: web-services serialization namespaces