Traversal attribute PropertyInfo.Attributes C # class

PropertyInfo.Attributes 属性

This property is a characteristic associated with members. All members have with respect to the feature set of the particular member type definition. Properties feature allows the user to know whether this property is the default property, SpecialName property and so on.

To obtain Attributes property, first get the class type. Obtained from Type PropertyInfo . From PropertyInfo acquired characteristics.

Official Example: Getting attribute class

 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         get{return 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 }

Official Reference: http://msdn.microsoft.com/zh-cn/library/system.reflection.propertyinfo.attributes

An example: Note: looks like on the field is invalid

First to build a class 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 }

Subsequently acquired attribute class in the main program, look at the code

 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 }

We need to introduce namespace:

using System.Reflection;

Reproduced in: https: //my.oschina.net/weisenz/blog/200614

Guess you like

Origin blog.csdn.net/weixin_33795833/article/details/91920890