24
A
답변
42
아니, is
만하지 주어진 Type
에 대한 객체의 종류를 확인하기 위해 작동합니다. 원하는 대상 : :
if (attr != null && typeof(IInterface).IsAssignableFrom(type))
여기에주의하십시오. 나는 거의 이typeof(...)
으로 전화를 사용합니다. 기본적으로 true를 반환하려면 대상이 "상위"유형이어야하고 인수는 "하위"유형이어야합니다.
7
2
안녕 type.GetInterfaces() or type.GetInterface()
을 사용하면 해당 유형이 구현하는 인터페이스를 가져올 수 있습니다.
-1
이 매우 늦었 실현하지만, 참조를 위해 여기를 떠나 : - MSDN에서 - 존 Skeets 응답에 ReSharper에서 사용 http://msdn.microsoft.com/en-us/library/scekt9xw(v=vs.71).aspx
이, 내가 제안으로 "는"준 나는이 (가) 작업자가 일을하다 발견 게다가.
0
주어진 최악의 시나리오;
당신이 클래스의 모든 속성 위에 반사를 사용하는 경우 ...
public List<PropertyInfo> FindProperties(Type TargetType) {
MemberInfo[] _FoundProperties = TargetType.FindMembers(MemberTypes.Property,
BindingFlags.Instance | BindingFlags.Public, new
MemberFilter(MemberFilterReturnTrue), TargetType);
List<PropertyInfo> _MatchingProperties = new List<PropertyInfo>();
foreach (MemberInfo _FoundMember in _FoundProperties) {
_MatchingProperties.Add((PropertyInfo)_FoundMember); }
return _MatchingProperties;
}
는 IInterface 몇 가지 일반적인 인터페이스
에게 있습니다public void doSomthingToAllPropertiesInDerivedClassThatImplementIInterface() { IList<PropertyInfo> _Properties = FindProperties(this.GetType()); foreach (PropertyInfo _Property in _Properties) { if (_Property.PropertyType.GetInterfaces().Contains(typeof(IInterface))) { if ((IInterface)_Property.GetValue(this, null) != null) { ((IInterface)_Property.GetValue(this, null)).SomeIInterfaceMethod(); } } } }
관련 문제
- 1. 나는 다음과 같은 한
- 2. jQuery를 나는 다음과 같은 한
- 3. 나는 다음과 같은 방법을 한
- 4. 잘못된 나는 다음과 같은 한
- 5. C - 나는 다음과 같은 한
- 6. 스레딩 및 소켓 나는 다음과 같은 한
- 7. 나는 다음과 같은 한 필드 이름
- 8. 검색 나는 다음과 같은 텍스트가 한
- 9. 안드로이드 : 나는 다음과 같은 한 그들에게
- 10. 안드로이드 2.2 나는 다음과 같은 한
- 11. jQuery를이 - 나는 다음과 같은 한 요소
- 12. 어떻게 나는 다음과 같은 한 AJAX
- 13. mod_rewrite를 규칙은 리디렉션 나는 다음과 같은 한
- 14. 나는 한 다음과 같은 XML 구조가 XML
- 15. 호출 서블릿은 나는 다음과 같은 한 세션
- 16. 정규 표현식 나는 다음과 같은 한
- 17. 봄 (자바) 나는 다음과 같은 한 목록
- 18. 동적으로 나는 다음과 같은 한 위치 요소
- 19. 나는 다음과 같은 테이블 구조가하는 한 질문
- 20. htaccess로는 : 나는 다음과 같은 한 디렉토리 만
- 21. 레일, 어떻게 DEF 나는 다음과 같은 한
- 22. 회전 이미지 나는 다음과 같은 한
- 23. jQuery를 - 변수 나는 다음과 같은 한
- 24. 넣어 결과 나는 다음과 같은 한
- 25. 나는 다음과 같은 embed 태그 한 JQuery와
- 26. 나는 다음과 같은 패키지 메이크 한
- 27. 나는 다음과 같은 XSLT 파일을 생성 한
- 28. 그룹으로하지만, 나는 다음과 같은 한 그룹화 ID
- 29. ANTLR : 나는 다음과 같은 한 유사한 리터럴
- 30. has_and_belongs_to_many 나는 다음과 같은 두 모델은 한