C#遍历类的属性 PropertyInfo.Attributes
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#遍历类的属性 PropertyInfo.Attributes相关的知识,希望对你有一定的参考价值。
.Attributes 属性
此属性表示与成员关联的特性。 所有成员都具有相对于特定成员类型定义的特性集。 属性特性使用户能够知道此属性是否是默认属性、SpecialName
若要获取 Attributes 从 Type 获取 PropertyInfo。 从 PropertyInfo
官方示例:获取类的特性
1 using System;
2 using System.Reflection;
3
4 public class Myproperty
5
6 private string caption = "Default caption";
7 public string Caption
8
9 getreturn caption;
10 set if(caption!=value) caption = value;
11
12
13
14
15 class Mypropertyinfo
16
17 public static int Main(string[] args)
18
19 Console.WriteLine("\\nReflection.PropertyInfo");
20
21 // Define a property.
22 Myproperty Myproperty = new Myproperty();
23 Console.Write("\\nMyproperty.Caption = " + Myproperty.Caption);
24
25 // Get the type and PropertyInfo.
26 Type MyType = Type.GetType("Myproperty");
27 PropertyInfo Mypropertyinfo = MyType.GetProperty("Caption");
28
29 // Get and display the attributes property.
30 PropertyAttributes Myattributes = Mypropertyinfo.Attributes;
31
32 Console.Write("\\nPropertyAttributes - " + Myattributes.ToString());
33
34 return 0;
35
36
官方参考:http://msdn.microsoft.com/zh-cn/library/system.reflection.propertyinfo.attributes
一个例子: 注意:貌似对字段无效
先建一个类User
1 namespace ClassLibrary1
2
3 public class User
4
5 private int userid = 1;
6 public int Userid
7
8 get return userid;
9 set userid = value;
10
11 private string userName = "jghg";
12 public string UserName
13 get return userName;
14 set userName = value;
15
16 private string address = "ghjghj";
17 public string Address
18 get return address;
19 set address = value;
20
21 private string email = "jhgjhg";
22 public string Email
23 get return email;
24 set email = value;
25
26 private string phone = "ghjgjg";
27 public string Phone
28
29 get return phone;
30 set phone = value;
31
32
33
接着在主程序中获取类的属性,看代码
1 namespace ConsoleApplication2
2 class Program
3 static void Main(string[] args)
4
5 Type type = typeof(ClassLibrary1.User);
6 object obj = Activator.CreateInstance(type);
7 PropertyInfo[] props = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);
8 foreach (PropertyInfo p in props)
9 Console.WriteLine(p.Name);
10
11 Console.ReadLine();
12
13
14
需要引入命名空间:
using System.Reflection;
以上是关于C#遍历类的属性 PropertyInfo.Attributes的主要内容,如果未能解决你的问题,请参考以下文章