private static void DumpInstanceProperty(String name, Object o, PropertyInfo propertyInfo, IDictionary <Object, String> visitedObjects, Boolean dumpObjectsOnlyOnce) { if (!propertyInfo.HasDoNotDumpAttribute() && propertyInfo.CanRead) { if (propertyInfo.IsIndexed()) { ObjectDumper.DumpAbortMessage(name.AppendEmptyIndex(), ObjectDumper.IndexedPropertyMessage); } else { Object value; try { value = propertyInfo.GetValue(o, null); } catch (Exception) { ObjectDumper.DumpAbortMessage(name.AppendMember(propertyInfo.Name), ObjectDumper.PropertyReadExceptionMessage); return; } ObjectDumper.DumpObject(value, name.AppendMember(propertyInfo.Name), visitedObjects, dumpObjectsOnlyOnce); } } }