В общем у нас есть прямой доступ к классу Class1, который объявлен публично как Interface1. В этом Class1 есть приватный Class2, в котором есть приватный Class3, который объявлен как Interface3. В этом классе Class3 есть приватное поле secretImportantVariable, которое надо вытащить с помощью Reflection. Как это сделать? Я уже всю голову сломал.
class Main
{
public Interface1 int1;
public Main()
{
int1 = new Class1();
}
}
class Class1 : Interface1
{
private Class2 hiddenClass2;
public Class1()
{
hiddenClass2 = new Class2();
}
}
class Class2
{
private Interface3 hiddenClass3;
public Class2()
{
hiddenClass3 = new Class3("a", "b", 1);
}
}
class Class3 : Interface3
{
private bool secretImportantVariable;
public Class3(string a, string b, int c)
{
secretImportantVariable = (a == b);
}
}
Возможно объяснение довольно хреновое, но пытаться привести декомпилированные куски кода программы было бы куда хуже - пробираться придётся через такие же дебри.