日期:2014-05-17  浏览次数:20793 次

获取DLL中所有控件
现有一.NET编写的DLL文件,里面包含若干个控件,现要通过反射或其他方式获取里面所有的控件,有无可靠有效的方法?请赐教,谢谢!

------解决方案--------------------
是这个意思么


System.Reflection.Assembly.LoadFile("..").GetExportedTypes().Where(t => typeof(Control).IsAssignableFrom(t));


------解决方案--------------------
1L的代码就是可执行的。
------解决方案--------------------
没试过的



Type controlType = typeof(Control);
List<Type> result = new List<Type>();

foreach(Type type in Assembly.LoadFile("..").GetExportedTypes())
{
    if(controlType.IsAssignableFrom(type))
    {
        result.Add(type);
    }
}