2012-10-10 130 views
4

可能重复:
Meaning of text between square brackets方括号

我看长得像

public class SaveBundle 
{ 
     /// <remarks/> 
     [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)] 
     public SaveBundleHeader Header 
     { 
      get 
      { 
       return this.headerField; 
      } 
      set 
      { 
       this.headerField = value; 
      } 
     } 
} 

类,我不知道为什么[ System.Xml.Serialisztion.Xml等]的存在或它被称为进一步研究它?

有人能告诉我[]的名字,在这个例子中它的目的是什么?

回答

2

它的属性XmlElement对房地产Header

你应该能够看它为XmlElementAttribute MSDN上被设置。像here

+0

因此,如果我在所有属性/字段上使用该属性,我是否可以像Xml对象一样使用我的对象? – Dave

+1

即使没有属性,也可以将对象序列化为Xml。属性允许您控制_how_ it被更精确地编码。 –

6

这是一个attribute,用于装饰具有可访问元数据的东西。您可以使用reflection来获取这些数据并对其进行处理。框架的很多部分已经这样做了,如MSDN链接中用于标记类Serializable的属性的示例 - 您可以基于元数据执行自定义序列化,但您并不总是需要,因为已经基于“自动序列化”实现了在这个概念上。

方括号是用于应用它们的语法,如您的示例中所演示的。

+1

尽管(通过投票)清楚方括号表示的最佳答案,但HenkHolterman的答案恰好为我和我目前的项目解释了额外的东西。所以加1,但请不要冒犯我没有标记为答案。 – Dave

+1

这只是公平的,也是这个地方最大的好处之一:对于如何回答以及当然是许多人的建议有不同的看法。 (: –

1

为了格式化你的财产时序列化你的类型

指示公共字段或属性表示XML元素时XmlSerializer的序列化或反序列化包含它的对象。

2

这是一个属性。

MSDN提供了here所有关于属性的信息(它们是什么,它们是什么意思等等)。