我有一个对象instance
为此
instance.GetType().GetGenericTypeDefinition() == typeof(Dictionary<,>)
是真的。我的问题是,如何在实际不知道其泛型类型的情况下从该对象中提取键值对?我想要得到类似的东西KeyValuePair<object, object>[]
。请注意,我还知道字典在运行时(但不知道编译时)使用的泛型类型。我认为需要某种反思?
跟进:是否有一个通用的机制来转换object
to SomeClass<>
(当然,如果我知道这是正确的类型)并因此使用它,因为该类的实现不受泛型参数类型的影响?
我会按照杰里米·托德所说的去做,除了可能短一点:
foreach(var item in (dynamic)instance)
{
object key = item.Key;
object val = item.Value;
}
作为旁注(不确定是否有帮助),您可以获取如下参数的类型:
Type[] genericArguments = instance.GetType().GetGenericArguments();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)