Tôi vừa xuất bản một gói Nuget cho phép thiết lập không chỉ các Thuộc tính cấp đầu tiên mà cả các thuộc tính lồng nhau trong đối tượng đã cho ở bất kỳ độ sâu nào.
Đây là gói
Đặt giá trị của một thuộc tính của một đối tượng theo đường dẫn của nó từ gốc.
Đối tượng có thể là một đối tượng phức tạp và thuộc tính có thể là thuộc tính lồng nhau sâu đa cấp hoặc nó có thể là một thuộc tính ngay dưới gốc. ObjectWriter
sẽ tìm thuộc tính bằng tham số đường dẫn thuộc tính và cập nhật giá trị của nó. Đường dẫn thuộc tính là tên được thêm vào của các thuộc tính được truy cập từ gốc đến thuộc tính nút cuối mà chúng ta muốn đặt, được phân cách bằng tham số chuỗi ký tự.
Sử dụng:
Để thiết lập các thuộc tính trực tiếp dưới gốc đối tượng:
I E. LineItem
lớp có một thuộc tính int được gọi làItemId
LineItem lineItem = new LineItem();
ObjectWriter.Set(lineItem, "ItemId", 13, delimiter: null);
Để thiết lập thuộc tính lồng nhau nhiều cấp dưới gốc đối tượng:
I E. Invite
lớp có một thuộc tính được gọi State
, trong đó có một thuộc tính được gọi Invite
(thuộc loại Mời), có một thuộc tính được gọi Recipient
, có một thuộc tính được gọiId
.
Để làm cho mọi thứ thậm chí phức tạp hơn, State
tài sản không phải là một loại tham chiếu, nó là một struct
.
Đây là cách bạn có thể đặt thuộc tính Id (thành giá trị chuỗi của triển vọng tầm nhìn) ở dưới cùng của cây đối tượng trong một dòng.
Invite invite = new Invite();
ObjectWriter.Set(invite, "State_Invite_Recipient_Id", "outlook", delimiter: "_");
var val = Convert.ChangeType(propValue, propInfo.PropertyType);
nguồn: devx.com/vb2themax/Tip/19599