Каков наилучший способ сравнить два произвольных динамических объекта для равенства? Например, эти два объекта.
т.е.
dynamic obj1 = new ExpandoObject();
obj1.Name = "Marcus";
obj1.Age = 39;
obj1.LengthInMeters = 1.96;
dynamic obj2 = AMethodReturningADynamic();
obj2.Name = "Marcus";
obj2.Age = 39;
obj2.LengthInMeters = 1.96;
Assert.AreEqual(obj1, obj2); // ?
Или есть способ получить фактические свойства и их значения в виде списков? Например, для создания ExpandoObject из динамического типа?