2016-06-14 10 views
-1

リフレクションを使用してこのメ​​ソッドを呼び出すにはどうすればよいですか。リフレクションを使用してメソッドを呼び出す方法

using System.Reflection 

public static string NotSoObvius<V>(V show) where V : class 
    { 
     return string.Format("This is it", show); 
    } 
+0

我々は方法がメンバーとなっているクラスまたは構造体を見ることができません。しかし、 'var res =(string)typeof(Xxx).GetMethod(" NotSoObvius ")のようなものもあります。 –

+0

ありがとうございましたが、私は少し理解していません – Muro

答えて

-1

あなたはこのような何かを試してみてください:から

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

+0

しかし、 'V'は実際の型ではありませんでした。したがって、 'V'は上記の範囲にはありません。そして、あなたは 'MakeGenericType'を使って型引数が何であるべきかを指定したいと思っています(質問に私のコメントを見てください)。 'static'メソッドは' this 'ターゲット( 'magicClassObject')を必要としません。あなたの答えにはいくつかの問題があります。 –

+0

そうです。私はちょうど答えをMSDNチュートリアルの後に修正しました: https://msdn.microsoft.com/pt-br/library/a89hcwhh(v=vs.110).aspx "コンストラクタが静的な場合、この引数はnullまたはコンストラクタを定義するクラスのインスタンスです。 " –

+1

回答が更新され、すべて機能しました! –

関連する問題