リフレクションを使用してこのメソッドを呼び出すにはどうすればよいですか。リフレクションを使用してメソッドを呼び出す方法
using System.Reflection
public static string NotSoObvius<V>(V show) where V : class
{
return string.Format("This is it", show);
}
リフレクションを使用してこのメソッドを呼び出すにはどうすればよいですか。リフレクションを使用してメソッドを呼び出す方法
using System.Reflection
public static string NotSoObvius<V>(V show) where V : class
{
return string.Format("This is it", show);
}
あなたはこのような何かを試してみてください:から
Type myType = Type.GetType("MyClass");
MethodInfo notSoObviusInfo = myType.GetMethod("NotSoObvius");
Type[] types = new Type[]{typeof(YourDesiredTypeHere)};
notSoObviusInfo = notSoObviusInfo.MakeGenericMethod(types);
string myReturn = (string)notSoObviusInfo.Invoke(null, new[]{new YourDesiredTypeHere()});
:https://msdn.microsoft.com/pt-br/library/a89hcwhh(v=vs.110).aspx
しかし、 'V'は実際の型ではありませんでした。したがって、 'V'は上記の範囲にはありません。そして、あなたは 'MakeGenericType'を使って型引数が何であるべきかを指定したいと思っています(質問に私のコメントを見てください)。 'static'メソッドは' this 'ターゲット( 'magicClassObject')を必要としません。あなたの答えにはいくつかの問題があります。 –
そうです。私はちょうど答えをMSDNチュートリアルの後に修正しました: https://msdn.microsoft.com/pt-br/library/a89hcwhh(v=vs.110).aspx "コンストラクタが静的な場合、この引数はnullまたはコンストラクタを定義するクラスのインスタンスです。 " –
回答が更新され、すべて機能しました! –
我々は方法がメンバーとなっているクラスまたは構造体を見ることができません。しかし、 'var res =(string)typeof(Xxx).GetMethod(" NotSoObvius ")のようなものもあります。 –
ありがとうございましたが、私は少し理解していません – Muro