wcf service - 将Object转换为System.Xml.XmlNode

时间:2014-09-02 04:57:15

标签: c# wcf

我有一个Web服务,它有一个接受id号作为参数的方法,并返回包含其个人详细信息的Object。现在我需要将Object类型的对象转换为XmlNode。如果我使用:

XmlNode xml = (XmlNode)retObj; //here retObj is of type Object

然后我没有获得带有值的节点。

请帮助我如何获得所有细节......请...我也不必使用SOAP ....所以我需要解决方案,其中不使用SOAP代码

1 个答案:

答案 0 :(得分:2)

我假设您知道服务返回的对象结构,通常您应该将对象映射到DTO,如下所示:

  public class MyObjDTO
  {
    public string Name { get;set;}
    public string DOB { get; set; }
    public string Nationaliy { get; set; }

  }

然后您可以使用XMLSerializer将DTO序列化为字符串:

  var dto = (MyObjDTO)retObj;
  XmlSerializer serializer = new XmlSerializer(typeof(MyObjDTO));
  StringWriter textWriter = new StringWriter();
  serializer.Serialize(textWriter, dto);

然后通过XmlDocument获取XMLNode

  var xmlString = textWriter.ToString();
  XmlDocument doc = new XmlDocument();
  doc.LoadXml(xmlString);
  XmlNode newNode = doc.DocumentElement;