对于翻译引擎,我需要返回我们的应用程序中使用的特定类型的所有对象(标签,表单,用户控件......)。我试图使用反射,但问题是我还动态地实例化一些可翻译的对象,我不确定我是否可以通过反射得到它。
也许反思不是解决这个问题的正确方法?
任何建议都是欢迎的。
由于
答案 0 :(得分:1)
尝试类似这个完整示例的内容:
public class ClassA
{
public static void Main()
{
Assembly myassembly = Assembly.GetExecutingAssembly();
var baseType = typeof(ClassA);
var theTypesIWant = myassembly.GetTypes().Where(t=> baseType.IsAssignableFrom(t));
}
}
public class ClassB : ClassA
{ }
当然,您可以通过各种方式获得对程序集的引用。也许这可能会更好:
var myAssembly2 = baseType.Assembly;
如果这还不够,请告诉我。
修改强>
你正在使用C#2,所以Linq不可用。这是一个修改过的表格:
List<Type> theTypesIWant2 = new List<Type>();
foreach (var t in myAssembly2.GetTypes())
{
if (baseType.IsAssignableFrom(t))
theTypesIWant2.Add(t);
}