버디 클래스는 데이터 주석 또는 모든 속성에 대해서만 작동합니까? 내 친구 클래스의 필드에 ColumnAttribute을 첨부하려고 시도했지만 원래 클래스에서 처리되지 않는 것으로 보입니다. 두 클래스는 MetadataType을 통해 링크됩니다.버디 클래스는 DataAnnotations에서만 작동합니까?
답변
내 답변은 DataAnnotations에만 해당되는 것이 아니며 유형 설명자를 연결하는 방법에 대한 답변입니다.
클래스의 관계를 설명하는 TypeDescriptionProvider
의 하위 클래스를 만듭니다 (일부 경우에는 AssociatedMetadataTypeTypeDescriptionProvider
과 같은 기존 설명자를 사용할 수있는 경우도 있습니다).
그런 다음 TypeDescriptor.AddProvider
또는 TypeDescriptor.AddProviderTransparent
을 사용하여 런타임에 동적으로 연결하십시오.
제안 사항에는 플래그가 지정된 유형의 목록이있는 서비스가 있으며 필요에 따라 모든 유형을 실행하여 성능 비용이 응용 프로그램 실행 시간에 분산되므로 유형이 처리 될 때 목록에 유형을 입력하고 다음에이 유형이 요청하면 목록에 있음을 알 수 있습니다.
버디 클래스 기술은 DataAnnotations에 특별한 것이 아닙니다. 그러나 사용중인 리플렉션 코드가 MetadataType
특성을 사용하여 작동하는 경우에만 작동합니다. ASP.NET MVC는 버디 클래스 개념을 처리하는 코드베이스의 예입니다. Linq-to-SQL은 그렇지 않습니다. 따라서 친구 클래스를 사용하여 ColumnAttribute
을 추가하려는 경우 현재 막혔습니다. 그러나, 당신이 정말로 좋아할 필요가 있다면 Linq-to-SQL은 속성을 사용하는 대신 매핑을 사용하여 XML 문서를 가져옵니다. 이 클래스를 사용하여 버디 클래스를 사용했을 수도있는 인스턴스의 대안으로 매핑을 만들 수 있습니다.
당신이 정말 멋지게 되려면 친구 클래스를 만들고 Linq 속성 데코레이션 클래스에 대한 자신 만의 버디 클래스 인식 리플렉션 핸들러를 작성하고 DataContext 필요에 맞게 XML 매핑 문서를 구성하십시오 . 아마 50 줄 미만의 코드에서 그렇게 할 수있을 것입니다.
- 1. 속성 클래스는 어떻게 작동합니까?
- 2. PHP IteratorIterator 클래스는 어떻게 작동합니까?
- 3. Wordpress의 워커 클래스는 어떻게 작동합니까?
- 4. JBoss의 ExceptionSorter 클래스는 어떻게 작동합니까?
- 5. Android : Application 클래스는 원격 프로세스에서 어떻게 작동합니까?
- 6. 고유 ID SQL 버디
- 7. ASP.NET MVC V2 - 버디 클래스
- 8. MVC의 버디 클래스 및 ViewModels?
- 9. C# 버디 클래스/메타 데이터 및 리플렉션
- 10. 스핀 컨트롤에 버디 윈도우 지정 - ResEdit (C++)
- 11. MVC3 버디 클래스, ViewModels 및 유효성 검사
- 12. 제거 클래스는
- 13. 클래스는 아이폰
- 14. 의사 클래스는
- 15. 클래스는 자바
- 16. 자바 클래스는
- 17. MFC : 왜 스핀 컨트롤이 뒤로 작동합니까
- 18. 버디 힙 알 고의 데이터 구조 또는 구현
- 19. msdeploy --- 작동합니까, 아니면 작동합니까?
- 20. Java Boolean 래퍼 클래스는 어떻게 인스턴스화됩니까? 자바에서
- 21. 인스턴스화 자식 클래스는
- 22. 컬렉션 클래스는 어디에 두시겠습니까?
- 23. XmlValidatingReader 클래스는 사용되지 않습니다.
- 24. ReferenceError가 : 오류 # 1008 클래스는
- 25. ActionFilterAttribute의 기본 클래스는 무엇입니까?
- 26. 간단한 PHP 클래스는
- 27. 어떻게이 클래스는 밀봉 ActivityExecutionContext를
- 28. 이 클래스는 스레드 안전합니까?
- 29. 하위 클래스는 어떻게 정의합니까?
- 30. Linq-sql 클래스는 최대