我正在尝试使用C#反射从程序集中检索所有类型(比如说:从“ ExecutingAssembly”中检索),我可以检索所有明确地定义的类型,包括通用类型I在装配中定义。但是我似乎无法检索隐式实例化的泛型类型(具体版本)。
例如,var types = Assembly.GetExecutingAssembly().GetTypes();
将检索所有明确定义的类型(类,在此程序集中定义的结构,包括通用类型,例如class MyGenericClass<T>
)
但是,在同一程序集中,我实际上在代码中使用MyGenericClass<int>
作为 concrete 类型来实际实例化 objects (例如:{{1 }}),但上面的代码似乎无法检索这种具体 MyGenericClass<int> myobject;
类型。
我想知道是否可以从程序集中检索任何实例化的生成类型,因此以后我可能会使用该类型来执行一些代码生成工作。
如果无法检索,有什么设计建议?
提前谢谢!