Tôi đang buộc phải thu thập tất cả Thuộc tính tùy chỉnh được đặt trên Thuộc tính. Có nhiều hơn một thuộc tính cùng loại được gán cho tài sản, nhưng khi thu thập chúng, bộ sưu tập kết quả chỉ chứa các thuộc tính đầu tiên của loại hình cụ thể:AllowMultiple không hoạt động với Thuộc tính Thuộc tính?
Các thuộc tính lớp
[AttributeUsage(System.AttributeTargets.Property,
AllowMultiple = true)]
public class ConditionAttribute : Attribute{...}
Cách sử dụng:
[ConditionAttribute("Test1")]
[ConditionAttribute("Test2")]
[ConditionAttribute("Test3")]
public Color BackColor{get; set;}
Bây giờ khi vòng lặp qua tất cả Props của đối tượng 'giá trị' mà lớp chứa Prop "BackColor":
foreach (PropertyDescriptor property in TypeDescriptor.GetProperties(value))
{
foreach (Attribute attribute in property.Attributes)
{ ... }
....
}
bộ sưu tập thuộc tính. Thuộc tính chỉ chứa MỘT Thuộc tính thuộc loại "ConditionAttribute": Thuộc tính có "Test1". Những người khác được bỏ qua ;-(
Vì vậy, không AllowMultiple không làm việc cho tài sản thuộc tính Cảm ơn?
trước
Henrik
Tôi gặp phải sự cố tương tự trong khi sử dụng một ValidationAttribute tùy chỉnh trong MVC; điều này giải quyết được vấn đề của tôi. –