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