C# wcf服务-将对象转换为System.Xml.XmlNode

C# wcf服务-将对象转换为System.Xml.XmlNode,c#,wcf,C#,Wcf,我有一个web服务,它有一个方法,该方法接受id号作为参数,并返回包含其个人详细信息的对象。现在我需要将这个对象类型的对象转换为XmlNode。如果我使用: XmlNode xml = (XmlNode)retObj; //here retObj is of type Object 那么我就不会得到有值的节点 请帮助我怎样才能得到所有的细节…请。。。此外,我不必使用SOAP…因此我需要一种不使用SOAP代码的解决方案我假设您知道服务返回的对象的结构,通常您应该将对象映射到DTO,如下所示:

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

XmlNode xml = (XmlNode)retObj; //here retObj is of type Object
那么我就不会得到有值的节点


请帮助我怎样才能得到所有的细节…请。。。此外,我不必使用SOAP…因此我需要一种不使用SOAP代码的解决方案

我假设您知道服务返回的对象的结构,通常您应该将对象映射到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;

通常,您应该将对象强制转换为强类型DTO,因此,您可以使用XMLSerializer将您的对象序列化为XML什么是强类型的DTO…plz fige,例如,带有一些代码行我在本页下面写了我的问题…请参考它…我仍然没有得到解决方案设置响应格式为XML应自动将返回值转换为XML请更具体地说明代码…I我不明白你说的话