using System.ComponentModel;
public string Foo { get; set; }
public string Bar { get; set; }
public string Baz { get; set; }
public static void Main()
var inner = new Inner("foooooo");
Console.WriteLine("Hello Josh");
string recordContents = "(begin) ";
foreach (PropertyDescriptor descriptor in TypeDescriptor.GetProperties(inner))
Console.WriteLine("- looping -");
string name = descriptor.Name;
object value = descriptor.GetValue(inner);
recordContents += $"{name}={value} ";
Console.WriteLine($"bye, {inner.Foo}");
Console.WriteLine($"Inner contents: {recordContents}");