private YamlMapping DictionaryToMap(object obj)
{
var accessor = ObjectMemberAccessor.FindFor(obj.GetType());
var iter = ( (IEnumerable)obj ).GetEnumerator();
var dictionary = map();
Func<object, object> key = null, value = null;
while ( iter.MoveNext() ) {
if ( key == null ) {
var keyvalue = iter.Current.GetType();
var keyprop = keyvalue.GetProperty("Key");
var valueprop = keyvalue.GetProperty("Value");
key = o => keyprop.GetValue(o, new object[0]);
value = o => valueprop.GetValue(o, new object[0]);
}
dictionary.Add(
ObjectToNode(key(iter.Current), accessor.KeyType),
ObjectToNode(value(iter.Current), accessor.ValueType)
);
}
return dictionary;
}