Example #1
0
 static void SerializeRecursiveDictionaryImpl(IEnumerable<KeyValuePair<string, object>> dictionary, HRONWriterVisitor visitor)
 {
     foreach (var kv in dictionary)
     {
         var key = kv.Key.ToSubString();
         var innerDictionary = kv.Value as IEnumerable<KeyValuePair<string, object>>;
         if (innerDictionary != null)
         {
             visitor.Object_Begin(key);
             SerializeRecursiveDictionaryImpl(
                 innerDictionary,
                 visitor
                 );
             visitor.Object_End(key);
         }
         else
         {
             visitor.Value_Begin(key);
             var value = kv.Value;
             if (value != null)
             {
                 var formattable = value as IFormattable;
                 var valueAsString = formattable != null
                     ? formattable.ToString("", CultureInfo.InvariantCulture)
                     : value.ToString()
                     ;
                 var lines = valueAsString.ReadLines();
                 foreach (var line in lines)
                 {
                     visitor.Value_Line(line);
                 }
             }
             visitor.Value_End(key);
         }
     }
 }