2016-11-29 133 views
1

什么是我需要提供的代码来带出以下XML使用命名空间前缀在C#

<?xml version="1.0"?> 
<CheckInLoad xmlns="http://fake.com/schemas/insert"   xmlns:cmn="http://fake.com/schemas/common" > 
<Input> 
    <cmn:EmpId>100</cmn:EmpId> 
</Input> 
</CheckInLoad> 

这里的修改是类dfinition生成XML

[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://fake.com/schemas/Insert")] 
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "http://fake.com/schemas/Insert", IsNullable = false)] 
    public partial class CheckInLoad 
    { 
     private CheckInLoadHeader headerField; 
     public CheckInLoadHeader Header 
     { 
      get 
      { 
       return this.headerField; 
      } 
      set 
      { 
       this.headerField = value; 
      } 
     } 
    } 

    /// <remarks/> 
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://fake.com/schemas/Insert")] 
    public partial class CheckInLoadHeader 
    { 

     private string empIdField; 


     /// <remarks/> 
     [System.Xml.Serialization.XmlElementAttribute(Namespace = "http://fake.com/schemas/common")] 
     public string EmpId 
     { 
      get 
      { 
       return this.empIdField; 
      } 
      set 
      { 
       this.empIdField = value; 
      } 
     } 

    } 

请让我知道了什么需要在课堂上进行一些改变。请不说,我使用下面的代码,对象转换为XML

 var stringwriter = new System.IO.StringWriter(); 
     var serializer = new XmlSerializer(load.GetType()); 
     serializer.Serialize(stringwriter, load); 
     return stringwriter.ToString(); 

回答

0
XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); 
ns.Add("cmn", "http://fake.com/schemas/common"); 
XmlSerializer serializer = new XmlSerializer(load.GetType()); 
serializer.Serialize(stringwriter, load, ns); 

试试这个。