我的方法基本上接收dynamic
个对象。这是由于动态调度,而不是讨论为什么我在这里输入dynamic
。
我知道这个dynamic
对象代表一个类型ASpecialClass<T>
,其中T在编译时是未知的。有没有办法提取T
类型并将其提供给另一种方法?
像:
public void DoSomething(dynamic inputObject)//At this point, I know that it implements ASpecialClass<T>, but I don't know what is the T type
{
extracType(InputObject);
CallOtherMethod<With_the_extracted_Type>(inputObject);
}
这里有两件事:
T
?谢谢
答案 0 :(得分:0)
回答问题1:
static IEnumerable<Type> GetGenericTypeArgument(dynamic inputObject)
{
var genType = inputObject.GetType();
return genType.GetGenericArguments();
}
回答问题2:
您需要使用反射来通过传递答案1中提供的泛型参数来调用泛型方法。 已经回答@ How do I use reflection to call a generic method?