Так что, если у меня есть:Как получить все атрибуты на основе интерфейса/basetype свойства?
public class Sedan : Car
{
/// ...
}
public class Car : Vehicle, ITurn
{
[MyCustomAttribute(1)]
public int TurningRadius { get; set; }
}
public abstract class Vehicle : ITurn
{
[MyCustomAttribute(2)]
public int TurningRadius { get; set; }
}
public interface ITurn
{
[MyCustomAttribute(3)]
int TurningRadius { get; set; }
}
Что магии я могу использовать, чтобы сделать что-то подобное:
[Test]
public void Should_Use_Magic_To_Get_CustomAttributes_From_Ancestry()
{
var property = typeof(Sedan).GetProperty("TurningRadius");
var attributes = SomeMagic(property);
Assert.AreEqual(attributes.Count, 3);
}
Оба
property.GetCustomAttributes(true);
И
Attribute.GetCustomAttributes(property, true);
Только вернуть 1 атрибут. Экземпляр - это объект, созданный с помощью MyCustomAttribute (1). Кажется, это работает не так, как ожидалось.
В приведенном примере утверждение терпит неудачу. Он возвращает 1 атрибут, а не все 3. – 2008-11-07 19:52:12