C# 如何在XML序列化C中添加XML属性#
您好,我在XML属性的XML序列化中遇到了一些问题,下面是从XSD生成的类文件的一些细节C# 如何在XML序列化C中添加XML属性#,c#,xml,serialization,C#,Xml,Serialization,您好,我在XML属性的XML序列化中遇到了一些问题,下面是从XSD生成的类文件的一些细节 /// <remarks/> [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.D
/// <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,
//
[System.CodeDom.Compiler.GeneratedCodeAttribute(“xsd”,“4.0.30319.17929”)]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute(“代码”)]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true,命名空间=”http://tempuri.org/UpdatePolicy.xsd")]
公共部分类策略类{
私有策略类类[]类字段;
///
[System.Xml.Serialization.XmlElementAttribute(“类”)]
公共政策类类[]@class{
得到{
返回此.classField;
}
设置{
this.classField=值;
}
}
}
///
[System.CodeDom.Compiler.GeneratedCodeAttribute(“xsd”,“4.0.30319.17929”)]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute(“代码”)]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true,命名空间=”http://tempuri.org/UpdatePolicy.xsd")]
公共部分类policyclasseClass{
私人字符串公司(idField),;
私有字符串可推断率字段;
私有字符串max_limitField;
私有字符串类_nameField;
私有字符串类_numberField;
私人保单类别类别类别编号类别编号字段;
private policyClassesClassAction_type action_typeField;
指定的私人布尔行动;
///
公共字符串公司\u id{
得到{
返回此.company_idField;
}
设置{
this.company_idField=价值;
}
}
///
[System.Xml.Serialization.xmlementAttribute(DataType=“positiveInteger”)]
公共字符串可扣除率{
得到{
返回此.可扣除的费率字段;
}
设置{
this.debutable_rate字段=值;
}
}
///
[System.Xml.Serialization.xmlementAttribute(DataType=“positiveInteger”)]
公共字符串最大值限制{
得到{
返回此.max_limitField;
}
设置{
this.max_limitField=值;
}
}
///
公共字符串类名称{
得到{
返回此.class_名称字段;
}
设置{
this.class_nameField=值;
}
}
///
公共字符串类_编号{
得到{
返回此.class\u numberField;
}
设置{
this.class_numberField=值;
}
}
///
公共政策类别类别类别编号类别编号{
得到{
返回此.cchi\u class\u编号字段;
}
设置{
this.cchi\u class\u numberField=值;
}
}
///
[System.Xml.Serialization.XmlAttributeAttribute()]
公共政策类ClassAction类型action类型{
得到{
返回此.action_类型字段;
}
设置{
this.action_typeField=值;
}
}
///
[System.Xml.Serialization.XmlIgnoreAttribute()]
指定的公共布尔操作类型{
得到{
返回指定的操作类型字段;
}
设置{
this.action_typeFieldSpecified=值;
}
}
}
///
[System.CodeDom.Compiler.GeneratedCodeAttribute(“xsd”,“4.0.30319.17929”)]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true,命名空间=”http://tempuri.org/UpdatePolicy.xsd")]
公共枚举策略类别类别类别编号{
///
[System.Xml.Serialization.XmlEnumAttribute(“1”)]
项目1,
///
[System.Xml.Serialization.XmlEnumAttribute(“2”)]
项目2,
///
[System.Xml.Serialization.XmlEnumAttribute(“3”)]
项目3,
///
[System.Xml.Serialization.XmlEnumAttribute(“4”)]
项目4,
}
///
[System.CodeDom.Compiler.GeneratedCodeAttribute(“xsd”,“4.0.30319.17929”)]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true,命名空间=”http://tempuri.org/UpdatePolicy.xsd")]
公共枚举策略类ClassAction_类型{
///
[System.Xml.Serialization.XmlEnumAttribute(“10”)]
项目10,
///
[System.Xml.Serialization.XmlEnumAttribute(“1”)]
项目1,
我设法通过序列化基于这个类生成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>
999
20
800
甲级
1.
2.
如何将属性添加到元素
从//
[System.Xml.Serialization.XmlAttributeAttribute()]
公共政策类ClassAction类型action类型{
得到{
返回此.action_类型字段;
}
设置{
this.action_typeField=值;
}
}
请有人在这方面帮助我管理我的截止日期,也告诉我,如果有什么不清楚的有价值的答复
Joe注意,生成的类被标记为
partial
。
在项目中生成的类旁边添加另一个类,并给它一个类似的名称,例如GeneratedClasses.addon.cs。将其添加到新文件中:
public partial class policyClasses {
[System.Xml.Serialization.XmlAttribute]
public policyClassesClassAction_type action_type { get;set;}
}
如果你没有得到'action_type'属性值,那么它可能是nullThanx Sten让我按照你的建议尝试一下。Sten谢谢你的帮助,实际上我找到了它为什么没有显示为属性的原因。public bool action_typeSpecified{get{return this.action_typeFieldSpecified;}set{this.action_typeFieldSpecified=value;}在使用action_type之前,我需要指定action_typeSpecified为true或false。