클래스의 인스턴스가 주어지면 런타임에 속성에 속성을 설정하려고합니다.클래스 인스턴스의 속성에서 속성 찾기
그래서이 방법을 시도했지만 클래스에서 인스턴스가 아니라 속성을 찾았으므로 속성 속성을 변경하면 아무 효과가 없습니다.
var properties = myObject.GetType().GetProperties();
foreach (object prop in properties)
{
var attribute =prop.GetCustomAttributes(typeof(MyAttribute), true)[0];
//attribute.MyProp do some stuff
}
아래와 같이 유형 설명자를 사용하려고하면 속성의 속성을 가져올 수 없습니다.
var myObject= (MyClass) object;
PropertyDescriptorCollection props = TypeDescriptor.GetProperties(myObject);
//There is no props[0].GetCustomAttributes(
이것은 작동하지 않습니다. 속성은 변경 가능해야합니다. – SLaks
속성은 해당 코드 요소의 런타임 표현이 아니라 코드 요소와 연관됩니다. (btw, TypeDescriptor GetAttributes 메서드가 있지만 여전히 인스턴스가 아닌 형식을 기반으로) – SWeko