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())); }
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); }
public static void test_deserialize_from_sql_record() { string[] arr = new string[] { "123", "111111", "", "5", "", "JKKKKKKKKKKKKJKLLJLK" }; Account acc = new Account(); DBSerializer.deserializePKGFromSQL(arr, acc); }
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));; }
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); }
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); }
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"); }
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); }
public static bool deseriallize(string[] stringarray, object obj) { Console.WriteLine("deseriallize:"); obj = DBSerializer.deserializePKGFromSQL(stringarray, obj); return(true); }