首页 > 代码库 > 010. 使用.net框架提供的属性

010. 使用.net框架提供的属性

C#允许在类和类成员上声明特性(类), 可在运行时解释类和类的成员. 这个特性也称为属性, 使用Attribute.下面演示如何使用.net框架提供的属性. 

 1 using System; 
 2 using System.Reflection;
 3 public partial class _Default : System.Web.UI.Page 
 4 {
 5     //自定义属性类
 6     [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
 7     public class BookAttribute : Attribute //Attribute 自定义属性的基类
 8     {
 9         private string BookName;
10         public BookAttribute(string BookName)
11         {
12             this.BookName = BookName;
13         }
14         public string Book
15         {
16             get
17             {
18                 return BookName;
19             }
20         }
21     }
22 
23     //多次使用属性类
24     [Book("Asp.net入门基础;")]
25     [Book("C#实战案例")]
26     public class BookInfo
27     {
28         public string binfo = "图书信息***********";
29         public BookInfo()
30         {
31 
32         }
33     }
34 
35     //页面的page_load调用自定义的属性示例
36     protected void Page_Load(object sender, EventArgs e)
37     {
38         //实例化BookInfo类
39         BookInfo bf = new BookInfo();
40         //对象数组
41         object[] Bookattr;
42         //获取对象类型, 获取有关成员特性的信息并提供对成员元数据的访问
43         MemberInfo Typeinfo = typeof(BookInfo);
44         //提取类型是属性类的成员
45         Bookattr = Typeinfo.GetCustomAttributes(typeof(BookAttribute), false);
46         if (Bookattr.GetLength(0) != 0)
47         {
48             BookAttribute ba = (BookAttribute)(Bookattr[0]);//获取属性类的第一个成员
49             BookAttribute ba2 = (BookAttribute)(Bookattr[1]);//获取属性类的第二个成员
50             Response.Write(bf.binfo);
51             Response.Write("<br/>");
52             Response.Write("图书名称:" + ba.Book + ba2.Book);
53         }   
54     }
55 }

 

010. 使用.net框架提供的属性