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); }
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()); }