2014-03-04 33 views
0

我使用XSD.exe針對XML模式文件(.XSD)生成C#類,用於反序列化符合所述XML模式的XML數據文件。使用XSD.exe生成的這些類級別屬性中的哪一個可以安全地丟棄?

我注意到以下類級別屬性已被添加到所有生成的類。

[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")] 
[System.SerializableAttribute()] 
[System.Diagnostics.DebuggerStepThroughAttribute()] 
[System.ComponentModel.DesignerCategoryAttribute("code")] 
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] 

在某些情況下,該工具也產生了XmlElementAttribute屬性,這點我很清楚是必要進行適當的反序列化。

[System.Xml.Serialization.XmlElementAttribute("Field")] 

所以比這XmlElementAttribute,上述屬性,其真正需要的反序列化是成功的其他。我知道我可以逐個刪除它們並嘗試一下,但是有很多類,我想盡可能保持我的類定義爲「乾淨」,而不必在整個地方都有不必要的屬性。

下面是由XSD.exe生成的示例類定義,以防您需要查看該類。

[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")] 
[System.SerializableAttribute()] 
[System.Diagnostics.DebuggerStepThroughAttribute()] 
[System.ComponentModel.DesignerCategoryAttribute("code")] 
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] 
public partial class CrystalReportReportFooter { 

    private CrystalReportReportFooterSection sectionField; 

    /// <remarks/> 
    public CrystalReportReportFooterSection Section { 
     get { 
      return this.sectionField; 
     } 
     set { 
      this.sectionField = value; 
     } 
    } 
} 

謝謝

回答

1

應該是安全的刪除除非重新生成代碼的工具需要這個。

[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")] 

你需要這個,因爲這是講述了一個類,它可以被序列化。

[System.SerializableAttribute()] 

這可以被刪除。它純粹用於調試,如果添加自定義代碼,最終可能會妨礙調試。

[System.Diagnostics.DebuggerStepThroughAttribute()] 

這可以被刪除。僅用於IDE或任何可充分利用它的所見即所得設計器。

[System.ComponentModel.DesignerCategoryAttribute("code")] 

這是給你。基本上它告訴Serializer該類是一個匿名XSD類型。

[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] 
+0

優秀。謝謝@TyCobb! – Shiva

相關問題