忘了當時是爲了幹啥了,不過感覺這個方法挺渣的,有需求可以參考下哦
/// <summary>
/// 通过基类找到所有继承的子类
/// </summary>
public void Info()
{
mConditions.Clear();
mConConTypes.Clear();
var types = Assembly.GetCallingAssembly().GetTypes();
var aType = typeof(BaseCondition);
foreach (var type in types)
{
var baseType = type.BaseType; //获取基类
while (baseType != null) //获取所有基类
{
if (baseType.Name == aType.Name)
{
Type objtype = Type.GetType(type.FullName, true);
object obj = Activator.CreateInstance(objtype);
if (obj != null)
{
BaseCondition info = obj as BaseCondition;
if (info.ConType != ConditionType.None)
{
SetCondition(info);
}
}
break;
}
else
{
baseType = baseType.BaseType;
}
}
}
}