2009-12-28 6 views
1

컨트롤러 이름 목록이 있고 해당 컨트롤러 (이름, GUID)에있는 모든 작업 목록이 있습니다.특정 컨트롤러에 대한 작업 목록

모든 컨트롤러 목록은 here입니다.

특정 속성으로 작업해야하기 때문에 내 목적에 맞는 List all the actions on a controller with specific attribute도 읽었습니다. 그러나 선택한 컨트롤러의 이름/GUID 만 있고 객체 자체는 아닙니다.

내 시나리오 : 사용자가 컨트롤러 (계단식 드롭 다운 목록)를 선택한 다음이 컨트롤러의 작업을 선택하여 일부 액세스 (및 링크)를 구성합니다. 따라서 사용자 지정 특성이있는 작업 만 필요합니다.

답변

6

컨트롤러에서 상속 한 형식을 가져온 것처럼 Reflection을 계속 사용할 수 있습니다. 당신은 유형이 있으면, 당신은 방법을 열거 할 수 있습니다 : 다음 각 방법에 대해, 당신은 모든 사용자 정의를 얻을 수

foreach(MethodInfo method in myContollerType.GetMethods(BindingFlags.Public | BindingFlags.Instance)) 
{ 

} 

을 그리고 것은 속성 :

foreach (var attribute in method.GetCustomAttributes(typeof(MyAttributeType),false)) 
{ 

} 
관련 문제