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的主要内容,如果未能解决你的问题,请参考以下文章

C#获取实体类属性名和值

C#遍历对象属性

C# 遍历类属性

java遍历实体类的属性和数据类型以及属性值

如何在c#中遍历内部属性

c# 遍历一个对象里面的全部属性