2016-11-29 135 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); 

試試這個。