Ever need a generic 'compare by value' comparer, for instance for comparing collections in lists?
var comparer = new CompareObjects();
Assert.IsTrue(comparer.Compare(actual, expected), comparer.DifferencesString);
Simply done. Get Compare .NET Objects. All in one .cs file courtesy of kellermansoftware