리플렉션을 사용하여 프로젝트의 클래스 구조로 트리 뷰를로드하고 있습니다. 클래스의 각 멤버에는 사용자 지정 특성이 할당되어 있습니다.리플렉션을 사용하여 MemberInfo 형식 가져 오기
MemberInfo.GetCustomAttributes()
을 사용하여 클래스의 특성을 가져 오는 데 문제가 없습니다. 그러나 클래스 멤버가 사용자 지정 클래스이고 사용자 지정 특성을 반환하기 위해 자체 구문 분석이 필요한 경우 해결 방법이 필요합니다.
지금까지, 내 코드는 다음과 MemberInfo가 인스턴스의 대상 유형은 그래서 적절하게 처리 할 수있는지고의 쉬운 방법은
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 [] membersInfo ='는 잘못된 기호입니다. 내가 'var'을 좋아하는 이유 중 하나는 잘못되기 쉽지 않은 점입니다. –
환상적입니다, 감사합니다. 다니엘. – GrandMasterFlush