【发布时间】:2013-04-02 01:03:29
【问题描述】:
我正在使用反射来加载具有项目类结构的树视图。类中的每个成员都有一个分配给他们的自定义属性。
使用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 实例的目标类型,以便我可以适当地处理它?我觉得我遗漏了一些明显的东西,但我现在正在绕圈子。
【问题讨论】:
标签: c# .net reflection attributes custom-attributes