Tôi cố gắng để xây dựng một đối tượng thông qua một thuộc tính trên một tài sản lớp học mà xác định một cột trong một dòng dữ liệu được cung cấp đó là giá trị của tài sản, như sau:C thiết lập giá trị tài sản thông qua phản ánh với các thuộc tính #
[StoredDataValue("guid")]
public string Guid { get; protected set; }
[StoredDataValue("PrograGuid")]
public string ProgramGuid { get; protected set; }
trong một phương pháp xây dựng() trên một đối tượng cơ sở, tôi nhận được các giá trị thuộc tính thiết lập bằng các tài sản như
MemberInfo info = GetType();
object[] properties = info.GetCustomAttributes(true);
Tuy nhiên, vào thời điểm này tôi nhận ra những hạn chế trong hiểu biết của tôi.
Để bắt đầu, tôi dường như không lấy lại thuộc tính chính xác.
Và làm cách nào để đặt các thuộc tính này thông qua sự phản chiếu, bây giờ tôi có các thuộc tính? Tôi đang làm/suy nghĩ một cái gì đó về cơ bản không chính xác?
Tôi sẽ cung cấp cho một thử nghiệm và cho bạn biết, có vẻ hợp lý mặc dù – johnc
Thuộc tính.GetCustomAttribute (...) trả về một mảng của System.Attribute và không thể chỉ đơn giản là đúc cho thuộc tính chính nó. Ví dụ được hiển thị thậm chí không biên dịch cho phép làm việc một mình. Bạn cần phải kiểm tra độ dài mảng để xem liệu thuộc tính mong muốn có tồn tại hay không và chuyển phần tử đầu tiên đến loại được yêu cầu thay thế. –
Ví dụ sử dụng GetCustomAttribute, không phải GetCustomAttributes. Ví dụ biên dịch khi tôi thử nó (tất nhiên, thay đổi tên thuộc tính). –