好的,我试着更好地解释我的问题:我有一个
class DynamicTypeCreator{...}
以及其中的一个方法:
static BuildASingletonClassWithTypeBuiler<T> (T object) {...}
该方法不仅创建了单例类型
class Singleton01<K> {...}
但也实例化它,定义字段
static Singleton01<K> instance = new Singleton01<K> (K object)
和另一个领域
static Type typeOfGenericParameter = typeof(K)
.
( https://github.com/TThaan/ExtensionPropertiesForCSharp上的实际代码是不同的,但这应该是无关紧要的。)
但是,此方法不返回单例类型或实例。它只是在创造它们。
事实上,很多时候,只是将类型的名称从 Singleton01 更改为 Singleton02、Singleton03 等,并且每次都使用不同T object
的参数。
因此,当我以后想访问其中一个单例时,我不知道它拥有什么对象以及它是什么类型。要获取例如“Singleton03”中任何静态字段的值,我首先使用
Type type = AssemblyBuilder.GetType("Singleton03")
.
现在尝试获取静态字段的值还行不通,它只是空值。我似乎被迫使用
Type genericType = type.MakeGenericType(new[] { typeof(T) })
.
但要让它工作,我已经需要知道我的参数类型T object
。
我想知道在使用.MakeGeneric()
.