.net特性

来源:互联网 发布:中英文翻译软件 编辑:程序博客网 时间:2024/06/06 01:14

1..net平台允许程序员使用特性把更多的元数据嵌入到程序集中。特性是用于类型(类、接口、结构等)、成员(属性、方法等)、程序集或模块的代码注解

.net特性是扩展了抽象的System.Attribute基类的类类型。

所有.net特性都将加上Attribute标记的后缀。 [ServiceContract]   -->[ServiceContractAttribute] 


2.当在代码中应用特性时,如果他们没有被另一个软件显示的反射,那么嵌入的元数据基本上没什么作用,繁殖,嵌入程序集中的元数据介绍将被忽略不计,而并无害处。


3.特性举例:

[Serializable] -- 标记一个类或者结构能被序列化,如果BinaryFormatter类的Serialize()方法遇到这个特性注释的类,对象自动以紧凑的二进制形式被持久化到文件中。[NonSerialized] --指定类或者结构中的某个字段不能被持久化。

[ServiceContract] --标记一个方法是由WCF服务实现的契约。


4.可以应用多个特性到一个单独项上,只需要用逗号隔开

[Serializable , Obsolete("this class is Obsolete...")]    //该类可被实例化,并且是过时的

public class Class1

{

public int X{get;set;}

[NonSerialized]  //该字段不能被实例化

public int y ;

}


5.一个特性直到另一个软件反射它的值时才有用。

0 0