Пример #1
0
        public static string serializePKG(DBPkg pkg)
        {
            Console.WriteLine("serializePKG");
            Type          tp      = pkg.GetType();
            List <string> columns = DBSerializer.getDBColoumns(tp);

            Console.WriteLine("serializePKG" + columns.Count.ToString());

            XmlDocument doc  = new XmlDocument();
            XmlElement  root = doc.CreateElement("db_data");

            doc.AppendChild(root);

            root.SetAttribute("type", tp.FullName);
            root.SetAttribute("guid", pkg.guid);

            for (int i = 0; i < columns.Count; ++i)
            {
                XmlElement argnode = doc.CreateElement("field");
                root.AppendChild(argnode);
                FieldInfo field = tp.GetField(columns[i]);
                argnode.SetAttribute("type", field.FieldType.Name);
                argnode.SetAttribute("name", columns[i]);
                argnode.SetAttribute("value", DBSerializer.serializeField(field.FieldType, field.GetValue(pkg)));
            }

            System.IO.MemoryStream ms = new System.IO.MemoryStream(1024);
            doc.Save(ms);
            return(Encoding.UTF8.GetString(ms.ToArray()));
        }
Пример #2
0
        public static DBPkg deserializePKG(string content)
        {
            MemoryStream ms  = new MemoryStream(Encoding.UTF8.GetBytes(content));
            XmlDocument  doc = new XmlDocument();

            doc.Load(ms);

            XmlNode root = doc.FirstChild;

            string stype = root.Attributes["type"].Value;
            object dbpkg = typeof(DBSerializer).Assembly.CreateInstance(stype);

            if (dbpkg != null)
            {
                DBPkg pkg = (DBPkg)dbpkg;
                pkg.guid = root.Attributes["guid"].Value;

                if (root.ChildNodes != null)
                {
                    foreach (XmlNode child in root.ChildNodes)
                    {
                        string    fieldname    = child.Attributes["name"].Value;
                        string    filedcontent = child.Attributes["value"].Value;
                        FieldInfo field        = pkg.GetType().GetField(fieldname);
                        object    objfield     = DBSerializer.deserializedField(field, filedcontent);
                        field.SetValue(dbpkg, objfield);
                    }
                }
            }
            return((DBPkg)dbpkg);
        }
Пример #3
0
        public static void test_deserialize_from_sql_record()
        {
            string[] arr = new string[] { "123", "111111", "", "5", "", "JKKKKKKKKKKKKJKLLJLK" };
            Account  acc = new Account();

            DBSerializer.deserializePKGFromSQL(arr, acc);
        }
Пример #4
0
        public bool createAndInsertToDB()
        {
            Console.WriteLine("createAndInsertToDB");
            //insert into yw_account(guid) values('8902');
            string cmdstring = "insert into " + tableName + " (";
            string values    = "values(";

            Type tp = GetType();

            List <string> columns = DBSerializer.getDBColoumns(tp);
            List <string> defines = DBSerializer.getDBDefines(tp);

            for (int i = 0; i < columns.Count; ++i)
            {
                cmdstring += columns[i] + ",";
                FieldInfo field = tp.GetField(columns[i]);
                values += "'" + DBSerializer.serializeField(field.FieldType, field.GetValue(this)) + "',";
            }

            cmdstring = cmdstring.Remove(cmdstring.Length - 1);
            values    = values.Remove(values.Length - 1);
            cmdstring = cmdstring + ") " + values + ");";
            Console.WriteLine("createAndInsertToDB:" + cmdstring);
            return(DataInitializer.DB_insert(tableName, cmdstring));;
        }
Пример #5
0
        public virtual void SyncClient(DBPkg pkg)
        {
            Console.WriteLine("sync: " + pkg.GetType().Name);
            string data = DBSerializer.serializePKG(pkg);

            Console.WriteLine("SyncClient: " + data);
            DB_SyncClient(mDBInterface.guid, data);
        }
Пример #6
0
        private string getCreateString(Type tp)
        {
            string cmdString = "(";

            List <string> columns = DBSerializer.getDBColoumns(tp);
            List <string> defines = DBSerializer.getDBDefines(tp);

            for (int i = 0; i < columns.Count; ++i)
            {
                cmdString += columns[i];
                cmdString += " " + defines[i] + ",";
            }

            cmdString  = cmdString.Remove(cmdString.Length - 1, 1);
            cmdString += ");";
            Console.WriteLine("CmdString: " + cmdString);
            return(cmdString);
        }
Пример #7
0
        public static void test_pkg_serialize()
        {
            DataBase.Account account = new Account();
            account.guid  = "guillllll";
            account.user  = "******";
            account.psw   = "fjsadlkf";
            account.roles = new List <int>();
            for (int i = 0; i < 4; ++i)
            {
                account.roles.Add(i);
            }
            account.test        = 45;
            account.active_role = account.roles[0];

            string conent = DBSerializer.serializePKG(account);

            DataBase.Account res = (DataBase.Account)DBSerializer.deserializePKG(conent);
            System.Diagnostics.Debug.Assert(res.test == 45);
            System.Diagnostics.Debug.Assert(res.psw == "fjsadlkf");
        }
Пример #8
0
        public bool Init()
        {
            Console.WriteLine("DataInitializer ... Init");
            Console.Write("===>" + GetType().Name + " Init ");

            Assembly ass = typeof(DataInitializer).Assembly;

            var types = ass.GetTypes();

            foreach (var item in types)
            {
                if (item.Namespace == "DataBase")
                {
                    if (DBSerializer.isTable(item))
                    {
                        recreateDB(item);
                    }
                }
            }

            Console.Write("===>" + GetType().Name + " Init End ");

            return(true);
        }
Пример #9
0
 public static bool deseriallize(string[] stringarray, object obj)
 {
     Console.WriteLine("deseriallize:");
     obj = DBSerializer.deserializePKGFromSQL(stringarray, obj);
     return(true);
 }