Vì vậy, nếu tôi có:Làm cách nào để có được tất cả các thuộc tính trên giao diện của một thuộc tính/tổ tiên cơ sở?
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; }
}
kỳ diệu Những gì tôi có thể sử dụng để làm một cái gì đó như:
[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);
}
Cả
property.GetCustomAttributes(true);
Và
Attribute.GetCustomAttributes(property, true);
Chỉ trả về 1 thuộc tính. Ví dụ là phiên bản được xây dựng với MyCustomAttribute (1). Điều này dường như không hoạt động như mong đợi.
Trong ví dụ được cung cấp, xác nhận không thành công. Nó trả về 1 thuộc tính, không phải tất cả 3. –
Bạn nói đúng, đó là bởi vì nó thực sự chỉ là một tùy chỉnh. – albertein
Nếu tôi thay đổi thể hiện của thuộc tính, nó dường như chỉ trả về một chiếc xe hơi. Vì vậy, nó không tìm kiếm sau khi xe. Xem câu hỏi được cập nhật. Ty cho sự giúp đỡ mặc dù. –