RT
比如 我有这样一个结构
public class Base
{
    public int i;
}public class A:Base
{
}
public class B:Base
{
}
public class C:Base
{
}因为我打算用一个listbox来维护其所有子类的名称,点击listbox就能够利用反射来创建其子类(事实上,我的子类全都是用户控件,在用户界面中,点击listbox就能够通过listbox的text来反射创建用户控件,再进行操作).但我的子类经常发生变动,新增或移除,因此我不希望用外部的表或集合来维护这个listbox,而是利用程序自动扫描所有子类名称.

解决方案 »

  1.   

    这个怕不好获得,可以通过目前的所有的实例检测其基类,可以获得当前已经被实例过的子类,但没有使用的没法获的.
    特别是.net是即时编译.
      

  2.   

    Assembly ass = Assembly.Load("App_Code");
                foreach (Type t in ass.GetExportedTypes())
                {
                    if (t.IsClass && t.IsSubclassOf(typeof (IListener)))
                    {
    }
    }