私はReflectionの例を2日間読んでいますが、必要なものに合うようにすべてをつなぎ合わせることができないようです。実際、「System.Reflectionを使用する」がグレー表示されていることに気付くまで、リフレクションを使用していると思っていました。:-)
クラス名とそれに含まれるメソッドを含むxmlファイルがあります。メソッドの順序や名前さえも変更される可能性があります。それらを読んだら、実行できるようにしたいと思います。簡単そうです。
私は次のテストコードを持っています:
// myClassName = "namespace.TransactionServices"
Type tb = Type.GetType(myClassName);
// Classes will always have the same constructor
object classInstance = Activator.CreateInstance (
tb,
new object[]
{
authorization.apiKey,
authorization.userName,
testData.servicesEndPoint
});
//Grab the method I want
//myMethodName = "GetVersion"
MethodInfo mymethod = tb.GetMethod(myMethodName);
// no parameters for this method call
object result = mymethod.Invoke(classInstance, null);
tbはnullです。クラスを作成するための正しいAPIを取得しようとしていたのですが、残りの部分が有効かどうかさえわかりません。
助言がありますか?
ありがとう
編集:名前空間を追加しました。Activator.CreateInstanceは、コンストラクターが見つからないというエラーを返しています。そこにあります。