У меня возникли проблемы с получением свойств вложенных объектов. Для примера, я работаю с, у меня есть 2 классов:C# Reflection: получение свойств вложенных объектов
public class user
{
public int _user_id {get; set;}
public string name {get; set;}
public category {get; set;}
}
public class category
{
public int category_id {get; set;}
public string name {get; set;}
}
достаточно просто там, и если я размышляю либо одну из них, я получаю правильные наборы GetProperties(), например, если я сделать это:
PropertyInfo[] props = new user().GetType().GetProperties();
я получить свойства user_id, имя и категории, и если я делаю это:
PropertyInfo[] props = new category().GetType().GetProperties();
я получить свойства CATEGORY_ID и категории; это работает отлично. Но, это где я запутаться ...
Как вы можете видеть, категория является последним свойством пользователя, если я делаю это
//this gets me the Type 'category'
Type type = new user().GetType().GetProperties().Last().PropertyType;
//in the debugger, I get "type {Name='category', FullName='category'}"
//so I assume this is the proper type, but when I run this:
PropertyInfo[] props = type.GetType().GetProperties();
//I get a huge collection of 57 properties
Любая идея, где я лажать? Это можно сделать?
Я не ищу его с помощью .Last() - это было просто для простоты объяснения. – naspinski
Очень хорошо. Поскольку эти вопросы индексируются поисковыми системами, я оставлю свой комментарий как есть, потому что я чувствую, что люди должны знать, что использование ордера следует избегать. – Lucero
ничего себе, так просто ... Я просто думал слишком тяжело (или, может быть, недостаточно), спасибо! – naspinski