コード例 #1
0
            private void FormatDictionaryMembers(
                CommonObjectFormatter.Builder result,
                IDictionary dict)
            {
                result.AppendGroupOpening();
                int num = 0;

                try
                {
                    IDictionaryEnumerator enumerator = dict.GetEnumerator();
                    using (enumerator as IDisposable)
                    {
                        while (enumerator.MoveNext())
                        {
                            DictionaryEntry entry = enumerator.Entry;
                            result.AppendCollectionItemSeparator(num == 0);
                            result.AppendGroupOpening();
                            result.AppendCollectionItemSeparator(true);
                            this.FormatObjectRecursive(result, entry.Key, false);
                            result.AppendCollectionItemSeparator(false);
                            this.FormatObjectRecursive(result, entry.Value, false);
                            result.AppendGroupClosing();
                            ++num;
                        }
                    }
                }
                catch (Exception ex)
                {
                    result.AppendCollectionItemSeparator(num == 0);
                    this.FormatException(result, ex);
                    result.Append(' ');
                }
                result.AppendGroupClosing();
            }
コード例 #2
0
            private void FormatKeyValuePair(CommonObjectFormatter.Builder result, object obj)
            {
                System.Reflection.TypeInfo typeInfo = IntrospectionExtensions.GetTypeInfo(obj.GetType());
                object obj1 = typeInfo.GetDeclaredProperty("Key").GetValue(obj, Array.Empty <object>());
                object obj2 = typeInfo.GetDeclaredProperty("Value").GetValue(obj, Array.Empty <object>());

                result.AppendGroupOpening();
                result.AppendCollectionItemSeparator(true);
                this.FormatObjectRecursive(result, obj1, false);
                result.AppendCollectionItemSeparator(false);
                this.FormatObjectRecursive(result, obj2, false);
                result.AppendGroupClosing();
            }
コード例 #3
0
 private void FormatMultidimensionalArrayElements(
     CommonObjectFormatter.Builder result,
     Array array)
 {
     if (array.Length == 0)
     {
         result.AppendCollectionItemSeparator(true);
         result.AppendGroupOpening();
         result.AppendGroupClosing();
     }
     else
     {
         int[] numArray = new int[array.Rank];
         for (int dimension = array.Rank - 1; dimension >= 0; --dimension)
         {
             numArray[dimension] = array.GetLowerBound(dimension);
         }
         int num1 = 0;
         int num2 = 0;
         while (true)
         {
             int dimension1 = numArray.Length - 1;
             while (numArray[dimension1] > array.GetUpperBound(dimension1))
             {
                 numArray[dimension1] = array.GetLowerBound(dimension1);
                 result.AppendGroupClosing();
                 --num1;
                 --dimension1;
                 if (dimension1 < 0)
                 {
                     return;
                 }
                 ++numArray[dimension1];
             }
             result.AppendCollectionItemSeparator(num2 == 0);
             for (int dimension2 = numArray.Length - 1; dimension2 >= 0 && numArray[dimension2] == array.GetLowerBound(dimension2); --dimension2)
             {
                 result.AppendGroupOpening();
                 ++num1;
                 result.AppendCollectionItemSeparator(true);
             }
             this.FormatObjectRecursive(result, array.GetValue(numArray), false);
             ++numArray[numArray.Length - 1];
             ++num2;
         }
     }
 }
コード例 #4
0
 public bool AppendAsCollectionEntry(CommonObjectFormatter.Builder result)
 {
     if (this.HasKeyName())
     {
         result.AppendGroupOpening();
         result.AppendCollectionItemSeparator(true);
         result.Append(this.Name, 1, this.Name.Length - 2);
         result.AppendCollectionItemSeparator(false);
         result.Append(this.Value, 0, int.MaxValue);
         result.AppendGroupClosing();
     }
     else
     {
         result.Append(this.Value, 0, int.MaxValue);
     }
     return(true);
 }
コード例 #5
0
            private void FormatSequenceMembers(
                CommonObjectFormatter.Builder result,
                IEnumerable sequence)
            {
                result.AppendGroupOpening();
                int num = 0;

                try
                {
                    foreach (object obj in sequence)
                    {
                        result.AppendCollectionItemSeparator(num == 0);
                        this.FormatObjectRecursive(result, obj, false);
                        ++num;
                    }
                }
                catch (Exception ex)
                {
                    result.AppendCollectionItemSeparator(num == 0);
                    this.FormatException(result, ex);
                    result.Append(" ...", 0, int.MaxValue);
                }
                result.AppendGroupClosing();
            }
コード例 #6
0
            private void FormatObjectMembers(
                CommonObjectFormatter.Builder result,
                object obj)
            {
                List <CommonObjectFormatter.Visitor.FormattedMember> result1 = new List <CommonObjectFormatter.Visitor.FormattedMember>();

                this.FormatObjectMembersRecursive(result1, obj);
                bool flag = CommonObjectFormatter.Visitor.UseCollectionFormat(result1, IntrospectionExtensions.GetTypeInfo(obj.GetType()));

                result.AppendGroupOpening();
                for (int index = 0; index < result1.Count; ++index)
                {
                    result.AppendCollectionItemSeparator(index == 0);
                    if (flag)
                    {
                        result1[index].AppendAsCollectionEntry(result);
                    }
                    else
                    {
                        result1[index].Append(result, "=");
                    }
                }
                result.AppendGroupClosing();
            }