2011-02-02 11 views
0

속성을 통해 기본 속성을 설정하기위한 게시물을 읽었습니다.이 속성은 Design Mode 또는 Serialization 용으로 DefaultValue로 끝납니다.자동 속성의 기본값을 설정하는 속성을 작성하는 방법

그러나이 게시물에 필요한 속성을 작성하는 방법이 있습니다. 속성을 기본값으로 설정하십시오.

방법이 있다면 - 어떻게 그런 속성을 작성하기 시작합니까?

감사합니다, 기본적으로 L-

답변

3

당신은 할 수 없습니다.

생성자에서 기본값을 설정할 수 있습니다.

필자는 을 수행 한 결과은 매우 최근에 이런 일을 구현했지만 공장 기반의 구조를 사용하고있었습니다. 공장에서 [DefaultValue]을 확인하고 리플렉션을 통해 값을 설정합니다. 그러나 PostSharp와 같은 re-writer를 사용하지 않으면 특성으로 인해 임의의 코드가 실행될 수 없습니다.

생성자가 너무 멀리 떨어져 있으면 field-initializer를 사용하고 필드에 get/set을 써야합니다.

0

불행히도 속성은 메타 데이터가이며, 이는 스스로 실행할 수 없거나 무언가를 할 수 없음을 의미합니다.
그러나 속성에서 기본값을 읽고 속성에 할당하는 SetDefaultValues과 같은 이름으로 확장 메서드를 작성할 수 없습니다.

최근 프로젝트에서도 비슷한 결과가 나타 났으며 은 선언적 스타일로 정의 된 모든 기본값을 단일 장소에 보관했기 때문에 좋은 결정이라고 판명되었습니다.

기반 구현을 구현하고 성능을 비교하기위한 다양한 전략을 모색하는 interesting article on CodeProject이 있습니다. 나는 당신이 그것을 조사 할 것을 제안한다.

관련 문제