Tôi đang sử dụng phản chiếu để tải một ảnh tre có cấu trúc lớp của một dự án. Mỗi thành viên trong một lớp có một thuộc tính tùy chỉnh được gán cho chúng.Nhận loại hình MemberInfo với sự phản ánh
Tôi không có một vấn đề nhận được các thuộc tính cho một lớp học sử dụng MemberInfo.GetCustomAttributes()
tuy nhiên tôi cần một cách để làm việc ra nếu một thành viên lớp là một lớp tùy chỉnh và sau đó cần phân tích cú pháp riêng của mình để trả lại thuộc tính tùy chỉnh.
Cho đến nay, mã của tôi là:
MemberInfo[] membersInfo = typeof(Project).GetProperties();
foreach (MemberInfo memberInfo in membersInfo)
{
foreach (object attribute in memberInfo.GetCustomAttributes(true))
{
// Get the custom attribute of the class and store on the treeview
if (attribute is ReportAttribute)
{
if (((ReportAttribute)attribute).FriendlyName.Length > 0)
{
treeItem.Items.Add(new TreeViewItem() { Header = ((ReportAttribute)attribute).FriendlyName });
}
}
// PROBLEM HERE : I need to work out if the object is a specific type
// and then use reflection to get the structure and attributes.
}
}
Có một cách dễ dàng để nhận được các loại mục tiêu của một trường hợp MemberInfo vì vậy tôi có thể xử lý nó một cách thích hợp? Tôi cảm thấy tôi đang thiếu một cái gì đó hiển nhiên nhưng tôi đang đi vòng trong vòng tròn ở phút.
vâng, thành viên 'MemberInfo []Info =' là dấu hiệu xấu. Một trong những lý do tôi thích 'var' - ít điều hơn để hiểu sai. –
Tuyệt vời, cảm ơn Daniel. – GrandMasterFlush