Я являюсь абсолютным новичком при отражении на С#. Я хочу использовать рефлексию для доступа ко всем частным полям класса, включая те, которые унаследованы.
Мне удалось получить доступ ко всем закрытым полям, за исключением тех, которые унаследованы, а также все общедоступные и защищенные унаследованные поля. Однако я не смог получить доступ к закрытым, унаследованным полям. Следующий пример иллюстрирует:
class A
{
    private string a;
    public string c;
    protected string d;
}
class B : A
{
    private string b;
}
class test
{
    public static void Main(string[] Args)
    {
        B b = new B();       
        Type t;
        t = b.GetType();
        FieldInfo[] fields = t.GetFields(BindingFlags.Public | BindingFlags.NonPublic
                                         | BindingFlags.Instance); 
        foreach(FieldInfo fi in fields){
             Console.WriteLine(fi.Name);
        }
        Console.ReadLine();
    }
}
Это не может найти поле B.a.
Возможно ли это сделать? Очевидным решением было бы преобразовать частные, унаследованные поля в защищенные поля. Это, однако, сейчас не в моих силах.