2012-04-13 3 views
3

특정 오브젝트에 속성을 추가하려고합니다. 이 객체는 int, string, List 등일 수 있습니다.런타임 중에 오브젝트에 속성을 추가하지 않을 때

나는

TypeDescriptor.AddAttributes(object, attrList.ToArray());

을 사용하려고하지만 그렇게되면 속성이 목록에 표시되지 않습니다 :

object.GetType().GetCustomAttributes(false)

어떻게?

안부,

가브리엘 Paulsson이

답변

6

불행하게도이 방법은 동적으로 궁극적으로는 사용자가 추가 속성을 포함하는 TypeDescriptor가 당신을 제공, 유형의 메타 데이터를 변경하지 않습니다.

당신은 ... 거기에 대신의 반환 AddAttributes 방법의 가치와 쿼리를 계속해야

var myObject = { ... } 

var typeDescriptionProvider = TypeDescriptor.AddAttributes(myObject, attrList.ToArray()); 

var attributes = typeDescriptionProvider.GetTypeDescriptor(myObject).GetAttributes(); 
당신은 유형 메타 데이터 자체 (고정)의 조합으로 유형 설명 생각할 수

하고, 런타임에 추가 한 모든 메타 데이터 (동적).

+0

어머, 방금 AspNetCompatibilityRequirementsAttribute를 동적으로 추가하려고 2 ~ 3 시간을 잃어 버렸습니다. 이것이 마지막 촬영이었습니다. –

관련 문제