With Type.GetProperties() you can retrieve all properties of your current class and the public properties of the base-class. Is it somehow possible to get the private properties of the base-class too?
class Base
{
    private string Foo { get; set; }
}
class Sub : Base
{
    private string Bar { get; set; }
}
Sub s = new Sub();
PropertyInfo[] pinfos = s.GetType().GetProperties(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);
foreach (PropertyInfo p in pinfos)
{
    Console.WriteLine(p.Name);
}
Console.ReadKey();
This will only print "Bar" because "Foo" is in the base-class and private.