2011-04-21 5 views
2

System.Type.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly)을 사용하여 클래스의 메서드를 가져올 수 있습니다.Type.GetMethods에서 "속성 메서드"를 제외하는 방법?

그러나 반환 된 목록에는 '속성 메소드'가 포함됩니다. get_PropertyXset_PropertyX.

반환 된 목록에서 '속성 방법'을 제외시킬 수있는 방법은 무엇입니까?

+0

왜 downvoter가 설명 할 수 있을까요? – Pacerier

답변

8
var methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) 
.Where(m => !m.IsSpecialName); 
+1

'MethodInfo [] methods'는 어떤 유형의 변수가 반환되는지 더 명확하게 나타냅니다. –

+1

@Srinivas : 우선 배열을 반환하지 않으므로 오류가 발생합니다. 두 번째로, 나는 순수하게 주관적인 것처럼 var-vs-Type 논쟁에 들어 가지 않을 것입니다. 이 줄을 보는 대부분의 C# 프로그래머는'methods '가 반복 할 수있는 것을 알게 될 것입니다. 이것은 대개 우리가 신경 쓰는 부분입니다. – StriplingWarrior

+0

어디서 볼 수 없었는지 ... –

관련 문제