2013-06-11 47 views
0

我有一個序列化方法如下:XML序列C#,不處理某些字段

public string SerializeObject(object obj, Type type) 
{ 
    var setting = new XmlWriterSettings() { OmitXmlDeclaration = true, Indent = true }; 

    var xml = new StringBuilder(); 
    using (var writer = XmlWriter.Create(xml, setting)) 
    { 
     var nsSerializer = new XmlSerializerNamespaces(); 
     nsSerializer.Add(string.Empty, string.Empty); 

     var xmlSerializer = new XmlSerializer(type); 
     xmlSerializer.Serialize(writer, obj, nsSerializer); 
    } 
    return xml.ToString(); 
} 

我稱之爲如下:

requestXML = serializer.SerializeObject(InboundIterate, typeof(INBOUND)); 

如預期的輸出被用於我已定義的任何場在我的結構中作爲一個字符串,但所有的十進制值都丟失了。

例如我的輸出如下:

<PRODUCT_EXTENSION> 
<DIMENSION_UOM>IN</SD_DIMENSION_UOM> 
<SALES_UOM>CS</SD_SALES_UOM> 
</PRODUCT_EXTENSION> 

當我期待

<PRODUCT_EXTENSION> 
<DIMENSION_UOM>IN</DIMENSION_UOM> 
<DIMENSION>15.83</DIMENSION> 
<SALES_UOM>CS</SALES_UOM> 
<SALES>24</SALES> 
</PRODUCT_EXTENSION> 

任何幫助,將不勝感激,謝謝。下面

public partial class PRODUCT_EXTENSION { 

    private System.Nullable<decimal> LENGTHField; 

    private bool LENGTHFieldSpecified; 

    private System.Nullable<decimal> NET_WEIGHTField; 

    private bool NET_WEIGHTFieldSpecified; 

    private string SALES_UOMField; 

    private string WEIGHT_UOMField; 

    private List<PRODUCT_EXTENSIONSOURCE_SYSTEM> SOURCE_SYSTEMField; 

    public PRODUCT_EXTENSION() { 
     this.SOURCE_SYSTEMField = new List<PRODUCT_EXTENSIONSOURCE_SYSTEM>(); 
    } 

    public System.Nullable<decimal> LENGTH { 
     get { 
      return this.LENGTHField; 
     } 
     set { 
      this.LENGTHField = value; 
     } 
    } 

    [System.Xml.Serialization.XmlIgnoreAttribute()] 
    public bool SD_LENGTHSpecified { 
     get { 
      return this.LENGTHFieldSpecified; 
     } 
     set { 
      this.LENGTHFieldSpecified = value; 
     } 
    } 

    public System.Nullable<decimal> NET_WEIGHT { 
     get { 
      return this.NET_WEIGHTField; 
     } 
     set { 
      this.NET_WEIGHTField = value; 
     } 
    } 

    [System.Xml.Serialization.XmlIgnoreAttribute()] 
    public bool NET_WEIGHTSpecified { 
     get { 
      return this.NET_WEIGHTFieldSpecified; 
     } 
     set { 
      this.NET_WEIGHTFieldSpecified = value; 
     } 
    } 

    public string SALES_UOM { 
     get { 
      return this.SALES_UOMField; 
     } 
     set { 
      this.SALES_UOMField = value; 
     } 
    } 

    public string SD_WEIGHT_UOM { 
     get { 
      return this.WEIGHT_UOMField; 
     } 
     set { 
      this.WEIGHT_UOMField = value; 
     } 
    } 

    public List<PRODUCT_EXTENSIONSOURCE_SYSTEM> SOURCE_SYSTEM { 
     get { 
      return this.SOURCE_SYSTEMField; 
     } 
     set { 
      this.SOURCE_SYSTEMField = value; 
     } 
    } 
} 
+2

我認爲我們需要查看您想要序列化的類的代碼。 –

+0

沒有POCOs很難說,但它看起來像沒有序列化的屬性不可訪問,也許是私人的? – Sklivvz

+0

由於長度 – user2246303

回答

2

類我已經試過您的代碼段,這對我來說工作正常罰款與公共屬性,但如果我更改屬性保護,保護的或私有。 XML中缺少這些屬性。

檢查您的屬性。

+0

,我減少了一些,謝謝我認爲這工作 – user2246303

相關問題