public static void Main()
foreach(var prop in foo.GetType().GetProperties())
Console.WriteLine("{0}={1}", prop.Name, prop.GetValue(foo, null));
foreach(var prop in foo.GetType().GetProperties())
Console.WriteLine("{0}={1}", prop.Name, prop.GetValue(ifoo, null));
public class Foo : IFoo { public int Id { get; set; } }
public class Bar : Foo { public string Name { get; set; } }
public interface IFoo { int Id { get; set; } }