示例#1
0
        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);
                }
            }
        }