Я хочу автоматически и рекурсивно активировать посредством отражения все вложенные классы внутри класса, экземпляр которого я создаю. Вот шаблон того, что я пытаюсь сделать, но не знаю, как создать эту функцию. Я знаю, как перечислять члены и создавать экземпляры, но не знаю, как присвоить их внутренним подтипам. Вот такая схема. Мне нужно сделать это путем размышления, не внося никаких изменений внутри исходного класса. Просто активация объектов внутри, снаружи. Никаких переписываний кода внутри класса или добавления различных «новых» внутри класса, очевидно
Код: Выделить всё
void someCode()
{
Nest MyNest = new Nest();
createInstancesOfAllClassesInside(MyNest);
}
void createInstancesOfAllClassesInside(object anyObj)
{
//How, using reflection ?
}
public class Nest
{
public class A
{
public class A1
{
public class A2
{
public string x = "Activate me!";
}
}
}
public class B
{
public class B1
{
}
}
public string s = "Hello";
}
Отвечая на комментарии: под активацией я имею в виду «как если бы» внутренние классы были созданы с помощью new(). Спасибо!
Подробнее здесь:
https://stackoverflow.com/questions/790 ... -an-object