Tôi đang cố gắng để phản ánh trên một số thuộc tính của lớp và đặt chúng programaticlly, nhưng có vẻ như một bộ lọc PropertyInfo của tôi không hoạt động:"phương pháp thiết lập tài sản không tìm thấy" lỗi trong quá trình phản ánh
//Get all public or private non-static properties declared in this class (no inherited properties) - that have a getter and setter.
PropertyInfo[] props = this.GetType().GetProperties(BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.GetProperty | BindingFlags.SetProperty);
tôi 'm nhận được một lỗi trên dòng
pi.SetValue(this, valueFromData, null);
Bởi vì tài sản chỉ có một phương pháp get{}
, không có phương pháp set{}
.
Câu hỏi của tôi là tại sao thuộc tính này không được lọc ra khỏi đạo cụ? Tôi nghĩ đó là mục đích của BindingFlags.SetProperty.
Khách sạn không nhận được lọc ra là:
public String CollTypeDescription
{
get { return _CollTypeDescription; }
}
Lưu ý rằng tôi muốn lọc thuộc tính sẽ không hoạt động trước thời hạn, vì tôi liệt kê tất cả cùng một lúc. Tôi làm không muốn sử dụng pi.GetSetMethod()
sau khi thực tế xác định xem tôi có thể sử dụng trình thiết lập hay không.
@dtryon - không - anh OR-ing cùng những lá cờ cho các tùy chọn anh muốn đặt . –