獲取到集成指定類,接口等的類

利用反射獲取到實現當前接口的類,spa

本文只作代碼驗證,無任何實際意義code

具體代碼以下blog

 1 namespace General.Cons
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {
 7             //假設從接口程序集中得到到的類集合
 8             List<Type> lstTypeClass = new List<Type>
 9             {
10                 typeof(Student),  typeof(StudentNo)
11             };
12 
13             Type oInterfaceType = typeof(IStudent);
14 
15             //在類集合中找到集成當前接口的類  集合
16             var lstTypeClassTmp = lstTypeClass.Where(x => x.GetInterface(oInterfaceType.Name) != null).ToList();
17             if (lstTypeClassTmp.Any())
18             {
19                 foreach (var item in lstTypeClassTmp)
20                 {
21                     //若是當前類獲取到的接口等於遍歷的接口名稱,則匹配成功,
22                     if (item.GetInterface(oInterfaceType.Name).Equals(oInterfaceType))
23                     {
24                         Console.WriteLine(item.Name);
25                     }
26                 }
27                
28             }
29 
30             Console.WriteLine("Hello World!");
31             Console.ReadKey();
32         }
33     }
34 
35     public interface IStudent {
36         string GetName();
37     }
38     public class Student : IStudent
39     {
40         public string GetName()
41         {
42             return "Name";
43         }
44     }
45     public class StudentNo:IStudent
46     {
47         public string GetName()
48         {
49             return "Name";
50         }
51     }
52 }
相關文章
相關標籤/搜索