如何在类中为每个元素添加属性 [英] How to add an attribute in class for each element

查看:107
本文介绍了如何在类中为每个元素添加属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个如下所示的课程。



 [DataContract] 
公开 申请人
{
私有 string titleField;
private string firstNamesField;

[DataMember(订单= 1 )]
public < span class =code-keyword> string 标题
{
获取
{
return this .titleField;
}
set
{
this .titleField = ;
}
}
[DataMember(订单= 2 )]
公开 字符串 FirstNames
{
get
{
return this .firstNamesField;
}
set
{
this .firstNamesField = ;
}
}
}





我正在将这个类对象转换为XML。 />


  var  app =  new 申请人(); 
var dcs = new DataContractSerializer(app.GetType());
var ms = new MemoryStream();
dcs.WriteObject(ms,app);
string xml = Encoding.UTF8.GetString(ms.GetBuffer(), 0 ,( int )ms.Position);
var doc = XElement.Parse(xml);





doc的值看起来如下所示。



 <  申请人    xmlns:i  < span class =code-keyword> =  http://www.w3.org/2001/XMLSchema-instance    xmlns   =  http://schemas.datacontract.org/2004/07/testApp\">  
< 申请人 >
< 标题 > 先生< / Title >
< FirstNames > 申请人< / FirstNames >
< /申请人 >
< /申请人 >





现在,如何在xml中为每个元素添加属性。我想要一个如下所示的XML。



 <  申请人    xmlns:i   =  http://www.w3.org/2001/XMLSchema-instance    xmlns   =  http:// schemas。 datacontract.org/2004/07/testApp\">  
< 申请人 >
< 标题 IsEnabled = True > 先生< / Title >
< FirstNames IsEnabled = True > 申请人< / FirstNames >
< /申请人 >
< /申请人 >





必须为每个元素添加IsEnabled属性。但我不想解析XML并为每个元素创建属性。是否可以在类中添加属性并将它们作为每个元素的属性?

解决方案

下面的文章解释了类似的问题并提供了解决方案。请检查



DataContract XML序列化和XML属性 [ ^ ]

I have a class which looks like below.

[DataContract]
   public class Applicant
   {
       private string titleField;
       private string firstNamesField;

       [DataMember(Order = 1)]
       public string Title
       {
           get
           {
               return this.titleField;
           }
           set
           {
               this.titleField = value;
           }
       }
       [DataMember(Order = 2)]
       public string FirstNames
       {
           get
           {
               return this.firstNamesField;
           }
           set
           {
               this.firstNamesField = value;
           }
       }
   }



I'm converting this class object into XML.

var app = new Applicant();
var dcs = new DataContractSerializer(app.GetType());
           var ms = new MemoryStream();
           dcs.WriteObject(ms, app);
           string xml = Encoding.UTF8.GetString(ms.GetBuffer(), 0, (int)ms.Position);
           var doc = XElement.Parse(xml);



the value of "doc" will look something like below.

<Applicant xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/testApp">
		<Applicant>
			<Title>Mr</Title>
			<FirstNames>Applicant</FirstNames> 
		</Applicant>
	</Applicant>



Now , how to add an attribute to a each element in xml. I want an XML like below.

<Applicant xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/testApp">
		<Applicant>
			<Title IsEnabled="True">Mr</Title>
			<FirstNames IsEnabled="True">Applicant</FirstNames>
		</Applicant>
	</Applicant>



The "IsEnabled" attribute has to come for each element. But i don't want to parse XML and create attribute for each element. Is it possible to add a property in the class and make them as a attribute for each element ?

解决方案

Below article explains similar problem and provide a solution. Please check

DataContract XML serialization and XML attributes[^]


这篇关于如何在类中为每个元素添加属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆