2014-04-01 61 views
1

您好在XML属性的XML序列化中存在一些问题,下面是从XSD生成的类文件的一些细节。如何在XML序列化中添加XML属性C#

/// <remarks/> 
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")] 
[System.SerializableAttribute()] 
[System.Diagnostics.DebuggerStepThroughAttribute()] 
[System.ComponentModel.DesignerCategoryAttribute("code")] 
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://tempuri.org/UpdatePolicy.xsd")] 
public partial class policyClasses { 

    private policyClassesClass[] classField; 

    /// <remarks/> 
    [System.Xml.Serialization.XmlElementAttribute("class")] 
    public policyClassesClass[] @class { 
     get { 
      return this.classField; 
     } 
     set { 
      this.classField = value; 
     } 
    } 
} 

/// <remarks/> 
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")] 
[System.SerializableAttribute()] 
[System.Diagnostics.DebuggerStepThroughAttribute()] 
[System.ComponentModel.DesignerCategoryAttribute("code")] 
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://tempuri.org/UpdatePolicy.xsd")] 
public partial class policyClassesClass { 

    private string company_idField; 

    private string deductable_rateField; 

    private string max_limitField; 

    private string class_nameField; 

    private string class_numberField; 

    private policyClassesClassCchi_class_number cchi_class_numberField; 

    private policyClassesClassAction_type action_typeField; 

    private bool action_typeFieldSpecified; 

    /// <remarks/> 
    public string company_id { 
     get { 
      return this.company_idField; 
     } 
     set { 
      this.company_idField = value; 
     } 
    } 

    /// <remarks/> 
    [System.Xml.Serialization.XmlElementAttribute(DataType="positiveInteger")] 
    public string deductable_rate { 
     get { 
      return this.deductable_rateField; 
     } 
     set { 
      this.deductable_rateField = value; 
     } 
    } 

    /// <remarks/> 
    [System.Xml.Serialization.XmlElementAttribute(DataType="positiveInteger")] 
    public string max_limit { 
     get { 
      return this.max_limitField; 
     } 
     set { 
      this.max_limitField = value; 
     } 
    } 

    /// <remarks/> 
    public string class_name { 
     get { 
      return this.class_nameField; 
     } 
     set { 
      this.class_nameField = value; 
     } 
    } 

    /// <remarks/> 
    public string class_number { 
     get { 
      return this.class_numberField; 
     } 
     set { 
      this.class_numberField = value; 
     } 
    } 

    /// <remarks/> 
    public policyClassesClassCchi_class_number cchi_class_number { 
     get { 
      return this.cchi_class_numberField; 
     } 
     set { 
      this.cchi_class_numberField = value; 
     } 
    } 

    /// <remarks/> 
    [System.Xml.Serialization.XmlAttributeAttribute()] 
    public policyClassesClassAction_type action_type { 
     get { 
      return this.action_typeField; 
     } 
     set { 
      this.action_typeField = value; 
     } 
    } 

    /// <remarks/> 
    [System.Xml.Serialization.XmlIgnoreAttribute()] 
    public bool action_typeSpecified { 
     get { 
      return this.action_typeFieldSpecified; 
     } 
     set { 
      this.action_typeFieldSpecified = value; 
     } 
    } 
} 

/// <remarks/> 
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")] 
[System.SerializableAttribute()] 
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://tempuri.org/UpdatePolicy.xsd")] 
public enum policyClassesClassCchi_class_number { 

    /// <remarks/> 
    [System.Xml.Serialization.XmlEnumAttribute("1")] 
    Item1, 

    /// <remarks/> 
    [System.Xml.Serialization.XmlEnumAttribute("2")] 
    Item2, 

    /// <remarks/> 
    [System.Xml.Serialization.XmlEnumAttribute("3")] 
    Item3, 

    /// <remarks/> 
    [System.Xml.Serialization.XmlEnumAttribute("4")] 
    Item4, 
} 

/// <remarks/> 
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")] 
[System.SerializableAttribute()] 
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://tempuri.org/UpdatePolicy.xsd")] 
public enum policyClassesClassAction_type { 

    /// <remarks/> 
    [System.Xml.Serialization.XmlEnumAttribute("10")] 
    Item10, 

    /// <remarks/> 
    [System.Xml.Serialization.XmlEnumAttribute("1")] 
    Item1, 

我设法基于这个类的序列化XML,但没有任何想法将XML属性添加到生成的XML,我认为如下得到一个输出。

<classes> 
<class action_type="10"> 
    <company_id>999</company_id> 
    <deductable_rate>20</deductable_rate> 
    <max_limit>800</max_limit> 
    <class_name>Class A</class_name> 
    <class_number>1</class_number> 
    <cchi_class_number>2</cchi_class_number> 
</class> 

如何将属性从/// <remarks/> [System.Xml.Serialization.XmlAttributeAttribute()] public policyClassesClassAction_type action_type { get { return this.action_typeField; } set { this.action_typeField = value; } }

添加到元素 <class action_type = "10">

请别人帮助我在此来管理我的最后期限,还告诉我,如果有什么不明确的宝贵回应 Joe

+0

如果你没有得到“ACTION_TYPE”属性值,那么它可能是空 –

回答

0

注意生成的类标记为partial。 在项目中生成的另一个类旁边添加另一个类,并为其指定一个类似的名称,例如GeneratedClasses .addon.cs。在您的新文件添加此:

public partial class policyClasses { 
    [System.Xml.Serialization.XmlAttribute] 
    public policyClassesClassAction_type action_type { get;set;} 
} 
+0

感谢名单斯登让我来试试像你建议。 – user122666

+0

Sten谢谢你的帮助,其实我找出了为什么这不显示为属性。 public bool action_typeSpecified { get { return this.action_typeFieldSpecified; } set { this.action_typeFieldSpecified = value; } 在使用action_type之前,我需要指定action_typeSpecified是true或false。 – user122666