다음과 같은 클래스 집합이 있다고 가정 해 봅시다. DerivedClass의 특성을 병합 할 수 있습니까? 현재 GetType(). GetCustomAttributes() 메서드를 상속에 대해 true로 전달하면 상속 구조에서 가장 높은 특성을 사용합니다.C#에서 클래스의 병합 된 속성을 가져올 수 있습니까?
즉 [다른 ("밥")] 및 속성을 병합하는 [내 (16)]
이 가능한가? 그래서 나는 [My (16, "Male")]과 [Another ("Bob")]의 두 속성으로 끝날 것입니다.
나는 [My , "Male")] 오히려 나는 Age of 16과 Male of Gender라는 속성을 반환 할 것입니다.
public class MyAttribute : Attribute
{
public MyAttribute(int age)
{
Age = age;
}
public MyAttribute(int age, string gender)
{
Age = age;
Gender = gender;
}
public int Age { get; set; }
public string Gender { get; set; }
}
public class AnotherAttribute : Attribute
{
public AnotherAttribute(string name)
{
Name = name;
}
public string Name { get; set; }
}
[My(12, "Male")]
[Another("Bob")]
public class BaseClass
{
}
[My(16)]
public class DerivedClass : BaseClass
{
}
이것을 달성하기 위해 속성을 "여러 번 허용"으로 표시하지 않아도됩니까? – bzlm
@Craig : 내 대답이 업데이트되어 더 많은 정보를 제공 할 수 있습니다. – IAbstract