특정 속성을 가진 메소드를 호출하려고합니다. 그래서 모든 어셈블리와 모든 메서드를 순환하여 내 특성을 가진 메서드를 찾습니다. 잘 작동하지만 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