示例#1
0
        private static object ReadObject(bool usector, ReadSettings settings, DataRow row,
                                         Type objectType, object receiver, IObjectSerializer datarowSerializer, string modelName)
        {
            object subObject = usector ? ObjectUtil.CreateObjectWithCtor(objectType)
                : ObjectUtil.CreateObject(objectType);
            object rowReader = datarowSerializer.CreateCustomReader(row);

            datarowSerializer.ReadObject(rowReader, subObject, modelName, settings, QName.Toolkit, null);
            SerializerUtil.SetParent(receiver, subObject);

            return(subObject);
        }
示例#2
0
        public static void ReadFromDataRow(this object receiver, DataRow row, string modelName,
                                           ReadSettings settings)
        {
            TkDebug.AssertArgumentNull(receiver, "receiver", null);
            TkDebug.AssertArgumentNull(row, "row", null);
            TkDebug.AssertArgumentNull(settings, "settings", null);

            IObjectSerializer serializer = ObjectExtension.CreateSerializer("DataRow");
            object            reader     = serializer.CreateCustomReader(row);

            serializer.ReadObject(reader, receiver, modelName, settings, QName.Toolkit, null);
            SerializerUtil.ReadObjectCallBack(receiver);
        }
示例#3
0
        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);
        }
示例#4
0
        public static List <T> CreateListFromTable <T>(this DataTable table, string modelName,
                                                       ReadSettings settings, Func <T> createFunc)
        {
            if (table == null)
            {
                return(null);
            }
            TkDebug.AssertArgumentNull(settings, "settings", null);
            TkDebug.AssertArgumentNull(createFunc, "createFunc", null);

            List <T> result = new List <T>(table.Rows.Count);

            IObjectSerializer serializer = ObjectExtension.CreateSerializer("DataRow");

            foreach (DataRow row in table.Rows)
            {
                T      obj    = createFunc();
                object reader = serializer.CreateCustomReader(row);
                serializer.ReadObject(reader, obj, modelName, settings, QName.Toolkit, null);
                result.Add(obj);
            }
            return(result);
        }