2010-07-28 3 views

답변

2

아니요, 불행히도 아닙니다.

속성은 인스턴스가 아닌 유형별 및 멤버 별 (예 : 첨부 된 "무언가"당)입니다.

속성을 검사하고 적용된 클래스의 인스턴스가 없어도 속성을 호출 할 수도 있습니다.

당신이하려는 것은 무엇입니까?

+0

System.ComponentModel.DataAnnotations.ValidationAttribute에서 상속하는 사용자 지정 유효성 검사 특성을 구현하려면 tryng 해요.하지만 validate하려면 instace 다른 속성에 대한 정보가 필요합니다.이 방법은 instace 개체를 가져 오는 중입니다. 관련. –

+0

@ Murillo Lima : http://pastebin.com/cvRkV2Ux를 확인하십시오. 몇 가지 문제가 있지만 일반적으로 괜찮습니다. –

+1

@Murilo : 속성에 코드를 넣지 마십시오! 귀하의 검사기가 클래스의 다른 속성을 봐, 당신의 속성이 유효성 검사를하지 마! 유효성 검사가 어떤 식 으로든 다른 속성을 참조해야한다고 선언해야하는 경우 속성의 이름이 포함 된 문자열 값을 가져 와서 값을 얻기 위해 리플렉션을 사용합니다. – Randolpho

1

정확하게 이해했다면, 속성이 적용되는 유형 ("클래스")을 얻고 싶습니다.

이 정보는 유감스럽게 사용할 수 없지만 어셈블리의 모든 유형을 방문하고 사용자 지정 특성을 가져 와서 리플렉션을 사용하여 다른 방법으로 만 얻을 수 있습니다.

+0

아니요, 관련 클래스의 정확한 인스턴스가 필요합니다. –

+0

속성은 메타 데이터 (어셈블리, 유형, 멤버)에만 적용되며 인스턴스별로 인스턴스화되지 않는다는 점을 이해해야합니다.기존 인스턴스를 직접 추적하지 않고 특정 속성에 속한 인스턴스를 가져올 수있는 방법이 없습니다 (예 : 생성 된 모든 인스턴스에 대한 약한 참조 컬렉션을 유지하는 기본 클래스를 통해). – Lucero

관련 문제