特定の属性を持つメソッドを呼び出したい。そのため、すべてのアセンブリとすべてのメソッドを循環して、自分の属性を持つメソッドを見つけています。正常に動作しますが、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
}
}
}
問題は、その特定のメソッドを含むクラスのインスタンスがわからないことです。メソッドが静的ではないため、適切に呼び出すことができません。また、可能であれば、このクラスの新しいインスタンスを作成することも避けたいと考えています。