【发布时间】:2012-07-09 14:06:19
【问题描述】:
我有一个类(我无法修改)可以简化为:
public class Foo<T> {
public static string MyProperty {
get {return "Method: " + typeof( T ).ToString(); }
}
}
我想知道当我只有System.Type时如何调用这个方法
即
Type myType = typeof( string );
string myProp = ???;
Console.WriteLinte( myMethodResult );
我的尝试:
我知道如何用反射实例化泛型类:
Type myGenericClass = typeof(Foo<>).MakeGenericType(
new Type[] { typeof(string) }
);
object o = Activator.CreateInstance( myGenericClass );
但是,由于我使用的是静态属性,因此实例化一个类是否合适?如果我无法编译时间转换,如何访问该方法? (System.Object 没有static MyProperty 的定义)
编辑 发布后我意识到,我正在使用的类是一个属性,而不是一个方法。我为造成的混乱道歉
【问题讨论】:
-
这里或多或少是这样的:stackoverflow.com/questions/4215729/…
标签: c# .net generics reflection