我正在使用反射来加载具有项目类结构的树视图。类中的每个成员都有一个分配给他们的自定义属性。
使用获取类的属性没有问题,MemberInfo.GetCustomAttributes()
但是我需要一种方法来确定类成员是否是自定义类,然后需要解析自身以返回自定义属性。
到目前为止,我的代码是:
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.
}
}
有没有一种简单的方法来获取 MemberInfo 实例的目标类型,以便我可以适当地处理它?我觉得我错过了一些明显的东西,但我现在正在转圈。