public static void ReadObject(IObjectSerializer serializer, object reader, object receiver, string modelName, ReadSettings settings, QName root, BaseObjectAttribute attribute, object serializerData, SerializerOptions options) { if (receiver is IDictionary) { BaseDictionaryAttribute attr = attribute as BaseDictionaryAttribute; options.CheckReadDictionary(serializer, attr); if (attr == null) { attr = GetDictionaryAttribute(receiver, root); } serializer.ReadDictionary(reader, receiver.Convert <IDictionary>(), attr, modelName, settings, root, serializerData); } else if (receiver is IList) { SimpleElementAttribute attr = attribute as SimpleElementAttribute; options.CheckReadList(serializer, attr); if (attr == null) { Type valueType = ObjectUtil.GetListValueType(receiver.GetType(), "", null); attr = GetElementAttribute(receiver, valueType); } serializer.ReadList(reader, receiver.Convert <IList>(), attr, modelName, settings, root, serializerData); } else { options.CheckReadObject(serializer); serializer.ReadObject(reader, receiver, modelName, settings, root, serializerData); } }
public static void ReadDictionaryFromDataRow(this IDictionary dictionary, DataRow row, ReadSettings settings) { TkDebug.AssertArgumentNull(dictionary, "dictionary", null); TkDebug.AssertArgumentNull(row, "row", null); TkDebug.AssertArgumentNull(settings, "settings", null); IObjectSerializer serializer = ObjectExtension.CreateSerializer("DataRow"); object reader = serializer.CreateCustomReader(row); DictionaryAttribute attr = new DictionaryAttribute { AutoTrim = true }; serializer.ReadDictionary(reader, dictionary, attr, null, settings, null, null); }
protected override void Read(IObjectSerializer serializer, object reader, object receiver, ReadSettings settings, ObjectPropertyInfo info, object serializerData) { serializer.ReadDictionary(this, reader, receiver, settings, info, serializerData); }