特定の属性を持つメソッドを呼び出そうとしています。 したがって、私のアトリビュートを持つメソッドを見つけるために、すべてのアセンブリとすべてのメソッドを循環させています。うまく動作しますが、MethodInfoしかない場合は、特定のメソッドを呼び出す方法を教えてください。MethodInfoでメソッドを呼び出す
AppDomain app = AppDomain.CurrentDomain;
Assembly[] ass = app.GetAssemblies();
Type[] types;
foreach (Assembly a in ass)
{
types = a.GetTypes();
foreach (Type t in types)
{
MethodInfo[] methods = t.GetMethods();
foreach (MethodInfo method in methods)
{
// Invoke a certain method
}
}
}
問題は、特定のメソッドを含むクラスのインスタンスがわからないということです。メソッドが静的ではないので、私は正しく呼び出すことができません。 可能であれば、このクラスの新しいインスタンスを作成しないようにしたいと考えています。
私がしたいのは、メソッドをコマンドラインで呼び出し可能にするカスタム属性でマークすることです。彼らがどこにいても。しかし、メソッドが静的でないサーバーインスタンスで同じメソッドを呼び出すことは意味がないと私は同意します。 これを、ある種類のマネージャークラスで使用します。このクラスには、パラメータごとに特定のインスタンスで呼び出しを呼び出すためのこれらのオブジェクトのコレクションが含まれています。これが私の望むことをすると思う。ありがとう – apparat