2012-05-29 4 views
2

참조가있는 클래스에서 메소드를 호출하려고합니다. 호출하려는 메서드에는 사용자 지정 특성이 있습니다. 현재이 속성을 찾아 내 클래스 속성의 속성을 호출 할 수 있습니다.속성을 사용하여 클래스에서 메소드를 호출하려면 어떻게합니까?

그 방법을 호출 할 방법이 있습니까?

PS/프로젝트는 vbnet으로 작성되었지만 해결책은 C#에서와 동일하다고 생각합니다.

+0

: 당신은 찾아이 코드 (가상 객체 anObject의) 메소드를 호출 할 수 있습니다 더 자세한 내용이나 코드를 작성하십시오. 귀하의 질문은 아직 명확하지 않습니다. –

답변

2

인 경우 해당 속성을 MethodInfo (으)로 추측 할 수 있습니다. MethodInfo.Invoke 메서드를 호출하기 만하면 사용할 객체의 인스턴스를 지정해야하며 (정적 메서드 인 경우 null) 프로토 타입과 동일한 순서로 메서드에 전달할 모든 매개 변수를 지정해야합니다.

예를 들어

이 프로토 타입 방법을 호출해야하는 경우 :

void Foo(string name, int value); 

을 그리고 당신은 그 방법 (지정된 속성에 대한 검색을) 찾을 수있는 기능을 가지고 :

MethodInfo FindMethodWithAttribute(Type attributeType, Type objectType); 

을 y는 수

MethodInfo method = FindMethodWithAttribute(
    typeof(MyAttribute), // Type of the "marker" attribute 
    anObject.GetType()); // Type of the object may contain the method 

method.Invoke(anObject, new object[] { "someText", 2 }); 
관련 문제