これを単純化するクラス(変更できない)があります:
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
)
編集 投稿後に気づいたのですが、使用しているクラスはメソッドではなくプロパティです。混乱をお詫び申し上げます