using System;
using System.Collections.Generic;
public class Test
{
class BaseEntity {
public int PropZero {get;set;}
}
class DerivedOne : BaseEntity {
public int PropOne {get;set;}
}
class DerivedTwo : BaseEntity {
public int PropTwo {get;set;}
}
public static void Main()
{
var list = new List<BaseEntity> {
new DerivedOne(), new DerivedTwo()
};
foreach (var e in list) {
var type = e.GetType();
Console.WriteLine("====== {0}", type.FullName);
foreach (var p in type.GetProperties()) {
Console.WriteLine(p);
}
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKICAgIGNsYXNzIEJhc2VFbnRpdHkgewogICAgICAgIHB1YmxpYyBpbnQgUHJvcFplcm8ge2dldDtzZXQ7fQogICAgfQogICAgY2xhc3MgRGVyaXZlZE9uZSA6IEJhc2VFbnRpdHkgewogICAgICAgIHB1YmxpYyBpbnQgUHJvcE9uZSB7Z2V0O3NldDt9CiAgICB9CiAgICBjbGFzcyBEZXJpdmVkVHdvIDogQmFzZUVudGl0eSB7CiAgICAgICAgcHVibGljIGludCBQcm9wVHdvIHtnZXQ7c2V0O30KICAgIH0KCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQl2YXIgbGlzdCA9IG5ldyBMaXN0PEJhc2VFbnRpdHk+IHsKICAgICAgICAgICAgbmV3IERlcml2ZWRPbmUoKSwgbmV3IERlcml2ZWRUd28oKSAgCQoJCX07CiAgICAgICAgZm9yZWFjaCAodmFyIGUgaW4gbGlzdCkgewogICAgICAgICAgICB2YXIgdHlwZSA9IGUuR2V0VHlwZSgpOwogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiPT09PT09IHswfSIsIHR5cGUuRnVsbE5hbWUpOwogICAgICAgICAgICBmb3JlYWNoICh2YXIgcCBpbiB0eXBlLkdldFByb3BlcnRpZXMoKSkgewogICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUocCk7CiAgICAgICAgICAgIH0KICAgICAgICB9Cgl9Cn0=