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 ```