1. 程式人生 > >通過基類找到所有繼承的子類

通過基類找到所有繼承的子類

one etc ase sem assembly `` tor bsp ont

 1 /// <summary>
 2     /// 通過基類找到所有繼承的子類
 3     /// </summary>
 4     public void Info()
 5     {
 6         mConditions.Clear();
 7         mConConTypes.Clear();
 8         var types = Assembly.GetCallingAssembly().GetTypes();
 9         var aType = typeof(BaseCondition);
10         foreach (var
type in types) 11 { 12 var baseType = type.BaseType; //獲取基類 13 while (baseType != null) //獲取所有基類 14 { 15 if (baseType.Name == aType.Name) 16 { 17 Type objtype = Type.GetType(type.FullName, true); 18 object
obj = Activator.CreateInstance(objtype); 19 if (obj != null) 20 { 21 BaseCondition info = obj as BaseCondition; 22 if (info.ConType != ConditionType.None) 23 { 24 SetCondition(info);
25 } 26 } 27 break; 28 } 29 else 30 { 31 baseType = baseType.BaseType; 32 } 33 } 34 } 35 } 36 ```

通過基類找到所有繼承的子類