public GameViewModel(Config cfg) { _currWolf = _wolfLT; animator.ReadyToCatch += EggReadyToCatch; animator.LifeActivate += LifeActive; _config = cfg; if (File.Exists("LeaderBord.ldr")) { try { _scores = MySerializer.DeserializeXml <List <Score> >("LeaderBord.ldr"); } catch (InvalidOperationException) { _scores = Score.GetDeffaultScoreList(); CustomMessageBox messageBox = new CustomMessageBox("File LeaderBord.ldr is damaged. Reset to default leader bord"); messageBox.ShowDialog(); MySerializer.SerializeXml <List <Score> >(_scores, "LeaderBord.ldr"); } } else { _scores = Score.GetDeffaultScoreList(); } }
public virtual void Save() { #if DEBUG MyTraceSource.TraceEvent(TraceEventType.Information, new StringBuilder(40).Append("[").Append(FileName).Append("] ファイル保存開始").ToString()); #endif List <string> list; lock (lockobject_) list = favoriteStreamClassList_.Select(x => x.Owner).ToList(); while (true) { try { MySerializer.Serialize <List <string> >(list, FilePath); IsChanged = false; } catch (DirectoryNotFoundException) { #if DEBUG MyTraceSource.TraceEvent(TraceEventType.Error, new StringBuilder(40).Append("[").Append(FileName).Append("] Favoriteフォルダが見つかりません").ToString()); #endif Directory.CreateDirectory("favorite"); continue; } catch (Exception ex) { MyTraceSource.TraceEvent(TraceEventType.Error, ex); } break; } #if DEBUG MyTraceSource.TraceEvent(TraceEventType.Information, new StringBuilder(40).Append("[").Append(FileName).Append("] ファイル保存完了").ToString()); #endif }
// Test OK public static Carrinho deserializeXmlToObject() { Carrinho carrinho = new Carrinho(); carrinho = MySerializer.DeserializeXmlToObject <Carrinho>(serializeObjectToXml()); return(carrinho); }
static void Main(string[] args) { MySerializer ser = new MySerializer(); using(FileStream file = File.OpenRead("../../../Tools/nwind.proto.bin")) { DatabaseCompat db = (DatabaseCompat)ser.Deserialize(file, null, typeof(DatabaseCompat)); Console.WriteLine("Orders: {0}", db.Orders.Count); int sum = 0; foreach(OrderCompat order in db.Orders) { sum += order.Lines == null ? 0 : order.Lines.Count; } Console.WriteLine("Lines: {0}", sum); using(MemoryStream ms = new MemoryStream()) { ser.Serialize(ms, db); Console.WriteLine("Bytes: {0}", ms.Length); } } // ArrayList names = new ArrayList(); // foreach(FieldInfo field in typeof(OpCodes).GetFields()) // { // if(field.IsStatic) names.Add(field.Name); // } // names.Sort(); // foreach(string name in names) Console.WriteLine(name); }
public void WhenSerializingUnknownTypeItThrowsInvalidOperation() { AbstractSerializer.RegisterKnownType(typeof(object)); AbstractSerializer s = new MySerializer(); AssertThrows<InvalidOperationException>(() => s.Serialize(new { })); }
public override bool OnSave(BitStream stream) { long entityId = Component.Entity.EntityId; MySerializer.Write(stream, ref entityId); return(true); }
public LeaderBordViewModel(Config cfg) { if (File.Exists("LeaderBord.ldr")) { try { Scores = MySerializer.DeserializeXml <List <Score> >("LeaderBord.ldr"); } catch (InvalidOperationException) { Scores = Score.GetDeffaultScoreList(); CustomMessageBox messageBox = new CustomMessageBox("File LeaderBord.ldr is damaged. Reset to default leader bord"); messageBox.ShowDialog(); MySerializer.SerializeXml <List <Score> >(Scores, "LeaderBord.ldr"); } } else { Scores = Score.GetDeffaultScoreList(); } Scores.Sort(); Scores.Reverse(); _config = cfg; }
static void Main(string[] args) { MySerializer ser = new MySerializer(); using (FileStream file = File.OpenRead("../../../Tools/nwind.proto.bin")) { DatabaseCompat db = (DatabaseCompat)ser.Deserialize(file, null, typeof(DatabaseCompat)); Console.WriteLine("Orders: {0}", db.Orders.Count); int sum = 0; foreach (OrderCompat order in db.Orders) { sum += order.Lines == null ? 0 : order.Lines.Count; } Console.WriteLine("Lines: {0}", sum); using (MemoryStream ms = new MemoryStream()) { ser.Serialize(ms, db); Console.WriteLine("Bytes: {0}", ms.Length); } } // ArrayList names = new ArrayList(); // foreach(FieldInfo field in typeof(OpCodes).GetFields()) // { // if(field.IsStatic) names.Add(field.Name); // } // names.Sort(); // foreach(string name in names) Console.WriteLine(name); }
public void CheckDeserializedNullReference() { if (File.Exists(path)) { File.Delete(path); } Class4 class4 = new Class4("Deskorolka", true, 4.9d); MySerializer mySerializer = new MySerializer(); using (FileStream fsSerialize = new FileStream(path, FileMode.Create)) { mySerializer.Serialize(fsSerialize, class4); } Class4 class4Deserialized; using (FileStream fsDeserialize = new FileStream(path, FileMode.Open)) { class4Deserialized = (Class4)mySerializer.Deserialize(fsDeserialize); } Assert.AreNotSame(null, class4Deserialized); Assert.AreSame(null, class4Deserialized.class4); }
public void CheckDeserializedClass4Values() { if (File.Exists(path)) { File.Delete(path); } Class4 class4 = new Class4("Deskorolka", true, 4.9d); class4.class4 = class4; MySerializer mySerializer = new MySerializer(); using (FileStream fsSerialize = new FileStream(path, FileMode.Create)) { mySerializer.Serialize(fsSerialize, class4); } Class4 class4Deserialized; using (FileStream fsDeserialize = new FileStream(path, FileMode.Open)) { class4Deserialized = (Class4)mySerializer.Deserialize(fsDeserialize); } Assert.AreNotSame(null, class4Deserialized); Assert.AreNotSame(class4, class4Deserialized); Assert.AreEqual(class4.Text, class4Deserialized.Text); Assert.AreEqual(class4.Number, class4Deserialized.Number); Assert.AreEqual(class4.Boolean, class4Deserialized.Boolean); }
public void Binary_Serialization_Deserialization_Equal_Test(string serFileName) { MySerializer.SerializeBinary(TestCatalog.StandardDir, serFileName); _desDir = MySerializer.DeserializeFromFile(serFileName, "-bin"); File.Delete(serFileName); Assert.That(_desDir, Is.EqualTo(TestCatalog.StandardDir)); }
public void WhenSerializingUnknownTypeItThrowsInvalidOperation() { AbstractSerializer.RegisterKnownType(typeof(object)); AbstractSerializer s = new MySerializer(); AssertThrows <InvalidOperationException>(() => s.Serialize(new { })); }
private void Awake() { Instance = this; if (Instance != this) { Destroy(this); } }
// ------------ // Constructors // ------------ public RestaurantsInfo() { _myList = new List <RestaurantInfo>(); GetSerializedData(); MySerializer.Serialize(ref _myList); OutputToRRDb(); }
InventoryDeltaInformation WriteInventory(ref InventoryDeltaInformation packetInfo, BitStream stream, byte packetId, int maxBitPosition, out bool needsSplit) { var delta = PrepareSendData(ref packetInfo, stream, maxBitPosition, out needsSplit); delta.MessageId = packetInfo.MessageId; stream.WriteBool(delta.HasChanges); stream.WriteUInt32(delta.MessageId); if (!delta.HasChanges) { return(delta); } stream.WriteBool(delta.ChangedItems != null); if (delta.ChangedItems != null) { stream.WriteInt32(delta.ChangedItems.Count); foreach (var keyValuePair in delta.ChangedItems) { stream.WriteUInt32(keyValuePair.Key); stream.WriteInt64(keyValuePair.Value.RawValue); } } stream.WriteBool(delta.RemovedItems != null); if (delta.RemovedItems != null) { stream.WriteInt32(delta.RemovedItems.Count); foreach (var value in delta.RemovedItems) { stream.WriteUInt32(value); } } stream.WriteBool(delta.NewItems != null); if (delta.NewItems != null) { stream.WriteInt32(delta.NewItems.Count); foreach (var keyValuePair2 in delta.NewItems) { stream.WriteInt32(keyValuePair2.Key); var value2 = keyValuePair2.Value; MySerializer.Write(stream, ref value2, MyObjectBuilderSerializer.Dynamic); } } stream.WriteBool(delta.SwappedItems != null); if (delta.SwappedItems != null) { stream.WriteInt32(delta.SwappedItems.Count); foreach (var keyValuePair3 in delta.SwappedItems) { stream.WriteUInt32(keyValuePair3.Key); stream.WriteInt32(keyValuePair3.Value); } } return(delta); }
private void Button_Click_1(object sender, RoutedEventArgs e) { var ser = new MySerializer(); var obj = new MetroDto.TestClass { EnumVal = MetroDto.MyEnum.Bar }; var clone2 = (MetroDto.TestClass)ser.DeepClone(obj); var clone3 = Serializer.DeepClone(obj); // runtime ReadProto(((Button)sender)); //((Button)sender).Content = clone.Foo + ", " + clone.Bar; }
protected override void OnLoad(BitStream stream, Action <MyInventory> loadingDoneHandler) { if (stream != null) { MySerializer.CreateAndRead(stream, out m_entityId); MySerializer.CreateAndRead(stream, out m_inventoryId); } MyEntities.CallAsync(delegate { LoadAsync(loadingDoneHandler); }); }
public NetMessageMgr() { m_ProtocolMgr = new ProtocolMgr(); m_Client = new XTcpClient(); m_Client.OnConnected += HandleOnConnected; m_Client.OnDisconnected += HandleOnDisconnected; m_Client.OnError += HandleOnError; m_Enable = false; m_Serializer = new MySerializer(); }
private void Button_Click_2(object sender, RoutedEventArgs e) { var ser = new MySerializer(); using (var source = LoadWithoutDiskIO()) { var watch = Stopwatch.StartNew(); var obj = (DatabaseCompat)ser.Deserialize(source, null, typeof(DatabaseCompat)); watch.Stop(); precompiledButton.Content = string.Format("Precompiled: {0} orders, {1} ms", obj.Orders.Count, watch.ElapsedMilliseconds); } }
public string GetSampleResponse() { string un = this.User.Identity.Name; Response r = new Response(); r.Header = new ResponseHeader("1", "Records Return Successfully"); Member m1 = new Member(); r.Members.Add(m1); m1.Keywords.Add(new Keyword("FirstName", "Johnny")); m1.Keywords.Add(new Keyword("MiddleName", "Q")); m1.Keywords.Add(new Keyword("LastName", "Northwoods")); m1.Keywords.Add(new Keyword("NameSuffix", "Jr.")); m1.Keywords.Add(new Keyword("SSN", "111111111")); m1.Keywords.Add(new Keyword("ExternalSystemID", "MN786545746")); m1.Keywords.Add(new Keyword("Sex", "M")); m1.Keywords.Add(new Keyword("BirthDate", "01/27/1963")); m1.Keywords.Add(new Keyword("PhysicalStreet1", "123 High St")); m1.Keywords.Add(new Keyword("PhysicalStreet2", "Apt 4")); m1.Keywords.Add(new Keyword("PhysicalStreet3", string.Empty)); m1.Keywords.Add(new Keyword("PhysicalCity", "Dublin")); m1.Keywords.Add(new Keyword("PhysicalState", "OH")); m1.Keywords.Add(new Keyword("PhysicalZip", "43017")); m1.Keywords.Add(new Keyword("PhysicalZipPlus4", "1234")); m1.Keywords.Add(new Keyword("MailingStreet1", "456 Broad Rd.")); m1.Keywords.Add(new Keyword("MailingStreet2", string.Empty)); m1.Keywords.Add(new Keyword("MailingStreet3", string.Empty)); m1.Keywords.Add(new Keyword("MailingCity", "Columbus")); m1.Keywords.Add(new Keyword("MailingState", "HO")); m1.Keywords.Add(new Keyword("MailingZip", "43016")); m1.Keywords.Add(new Keyword("MailingZipPlus4", "5678")); m1.Keywords.Add(new Keyword("HomePhone", "0123456")); m1.Keywords.Add(new Keyword("CellPhone", "9876543")); m1.Keywords.Add(new Keyword("StateCaseNumber", "020478922")); m1.Keywords.Add(new Keyword("LocalCaseNumber", "037450943")); m1.Keywords.Add(new Keyword("CaseManagerUserName", "Northwoods")); m1.Keywords.Add(new Keyword("CaseManagerName", "North Woods")); m1.Keywords.Add(new Keyword("CompassNumber", "OH1230000000001")); m1.Keywords.Add(new Keyword("UserName", "CompassServiceUser")); m1.Keywords.Add(new Keyword("xxxBatch #", "01234567890123456789")); m1.Keywords.Add(new Keyword("xxxCheck Consecutive #", "012345678")); return(MySerializer.ToXml(r)); }
public override bool OnSave(BitStream stream) { stream.WriteInt64(Instance.Owner.Entity.EntityId); stream.WriteInt64(Instance.Id); var ob = Instance.GetObjectBuilder(); MySerializer.Write(stream, ref ob, serialInfo); return(true); }
public void CheckStringReferencesTest() { if (File.Exists(path)) { File.Delete(path); } string stringReference = "StringReference"; Class1 class1 = new Class1(stringReference, DateTime.Now, 1.1d); Class2 class2 = new Class2(stringReference, DateTime.Now, 2.2d); Class3 class3 = new Class3(stringReference, DateTime.Now, 3.3d); class1.Class2 = class2; class1.Class3 = class3; class2.Class1 = class1; class2.Class3 = class3; class3.Class1 = class1; class3.Class2 = class2; MySerializer mySerializer = new MySerializer(); using (FileStream fsSerialize = new FileStream(path, FileMode.Create)) { mySerializer.Serialize(fsSerialize, class1); } Class1 class1Deserialized; using (FileStream fsDeserialize = new FileStream(path, FileMode.Open)) { class1Deserialized = (Class1)mySerializer.Deserialize(fsDeserialize); } Assert.AreNotSame(class1, class1Deserialized); Assert.AreNotSame(null, class1Deserialized.Class2); Assert.AreNotSame(null, class1Deserialized.Class3); Assert.AreEqual(class3.Number, class1Deserialized.Class3.Number); Assert.AreEqual(class3.DateTime.ToString(), class1Deserialized.Class3.DateTime.ToString()); Assert.AreEqual(class2.Number, class1Deserialized.Class2.Number); Assert.AreEqual(class2.DateTime.ToString(), class1Deserialized.Class2.DateTime.ToString()); Assert.AreEqual(class1.Number, class1Deserialized.Number); Assert.AreEqual(class1.DateTime.ToString(), class1Deserialized.DateTime.ToString()); Assert.IsFalse(object.ReferenceEquals(stringReference, class1Deserialized.Text)); Assert.IsTrue(object.ReferenceEquals(class1Deserialized.Text, class1Deserialized.Class2.Text)); Assert.IsTrue(object.ReferenceEquals(class1Deserialized.Text, class1Deserialized.Class3.Text)); Assert.IsTrue(object.ReferenceEquals(class1Deserialized.Class2.Text, class1Deserialized.Class3.Text)); }
private void ScoreCalculation() { if (CurrentScore > _scores.Min().LeaderScore) { _scores.Remove(_scores.Min()); NewHightScore NHS = new NewHightScore(); NewHightScoreViewModel NHSVM = NHS.DataContext as NewHightScoreViewModel; NHSVM.LeaderNameChanged += LeaderNameChanged; NHS.ShowDialog(); _scores.Add(new Score(CurrentScore, _leaderName)); MySerializer.SerializeXml <List <Score> >(_scores, "LeaderBord.ldr"); } }
public void Initialize(bool pollingMode, bool userTypeMode, ProtocolType type) { this.pollingMode = pollingMode; this.userTypeMode = userTypeMode; this.type = type; MySerializer.GetInstance().Initialize(userTypeMode); msgDelegateInitializer = new MessageDelegateInitializer(); msgDelegateProcessor = new MessageDelegateProcessor(msgDelegateInitializer); messageInitializer = new ClientHelperMessageInitializer(); networkInitializer = new ClientHelperNetworkInitializer(messageInitializer, msgDelegateProcessor, type); }
public override bool Serialize(BitStream stream, bool validate) { if (stream.Reading) { T newValue; MySerializer.CreateAndRead(stream, out newValue, SerializeInfo); return(SetValue(ref newValue, validate)); } else { MySerializer.Write(stream, ref m_value, SerializeInfo); return(true); } }
public void CheckDeserializedClass3Values() { if (File.Exists(path)) { File.Delete(path); } Class1 class1 = new Class1("KLASA1", DateTime.Now, 1.1d); Class2 class2 = new Class2("KLASA2", DateTime.Now, 2.2d); Class3 class3 = new Class3("KLASA3", DateTime.Now, 3.3d); class1.Class2 = class2; class1.Class3 = class3; class2.Class1 = class1; class2.Class3 = class3; class3.Class1 = class1; class3.Class2 = class2; MySerializer mySerializer = new MySerializer(); using (FileStream fsSerialize = new FileStream(path, FileMode.Create)) { mySerializer.Serialize(fsSerialize, class3); } Class3 class3Deserialized; using (FileStream fsDeserialize = new FileStream(path, FileMode.Open)) { class3Deserialized = (Class3)mySerializer.Deserialize(fsDeserialize); } Assert.AreNotSame(class2, class3Deserialized); Assert.AreNotSame(null, class3Deserialized.Class1); Assert.AreNotSame(null, class3Deserialized.Class2); Assert.AreEqual(class1.Text, class3Deserialized.Class1.Text); Assert.AreEqual(class1.Number, class3Deserialized.Class1.Number); Assert.AreEqual(class1.DateTime.ToString(), class3Deserialized.Class1.DateTime.ToString()); Assert.AreEqual(class2.Text, class3Deserialized.Class2.Text); Assert.AreEqual(class2.Number, class3Deserialized.Class2.Number); Assert.AreEqual(class2.DateTime.ToString(), class3Deserialized.Class2.DateTime.ToString()); Assert.AreEqual(class3.Text, class3Deserialized.Text); Assert.AreEqual(class3.Number, class3Deserialized.Number); Assert.AreEqual(class3.DateTime.ToString(), class3Deserialized.DateTime.ToString()); }
// Test OK public static string serializeObjectToXml() { Produto videogame = new Produto(77, "Xbox One", 2, 3); List <Produto> produtos = new List <Produto>(); produtos.Add(videogame); Carrinho carrinho = new Carrinho(); carrinho.Endereco = "Comerciante José Formiga de Assis, 77"; carrinho.Id = 2; carrinho.Produtos = produtos; string xml = MySerializer.SerializeObjectToXml(carrinho); return(xml); }
public void Initialize(bool pollingMode, bool userTypeMode, ProtocolType type, Action <String> logger, IMessageHandler disconnectHandler) { this.pollingMode = pollingMode; this.userTypeMode = userTypeMode; this.type = type; this.logger = logger; MySerializer.GetInstance().Initialize(userTypeMode); msgDelegateInitializer = new MessageDelegateInitializer(); msgDelegateProcessor = new MessageDelegateProcessor(msgDelegateInitializer); messageInitializer = new ClientHelperMessageInitializer(this); messageInitializer.SetConnectionInactiveHandler(disconnectHandler); networkInitializer = new ClientHelperNetworkInitializer(messageInitializer, msgDelegateProcessor); SetOnConnectAuthRes(); }
public void CheckDeserializedClass1References() { if (File.Exists(path)) { File.Delete(path); } Class1 class1 = new Class1("KLASA1", DateTime.Now, 1.1d); Class2 class2 = new Class2("KLASA2", DateTime.Now, 2.2d); Class3 class3 = new Class3("KLASA3", DateTime.Now, 3.3d); class1.Class2 = class2; class1.Class3 = class3; class2.Class1 = class1; class2.Class3 = class3; class3.Class1 = class1; class3.Class2 = class2; MySerializer mySerializer = new MySerializer(); using (FileStream fsSerialize = new FileStream(path, FileMode.Create)) { mySerializer.Serialize(fsSerialize, class1); } Class1 class1Deserialized; using (FileStream fsDeserialize = new FileStream(path, FileMode.Open)) { class1Deserialized = (Class1)mySerializer.Deserialize(fsDeserialize); } Assert.AreNotSame(class1, class1Deserialized); Assert.AreNotSame(null, class1Deserialized.Class2); Assert.AreNotSame(null, class1Deserialized.Class3); Assert.AreNotSame(null, class1Deserialized.Class2.Class1); Assert.AreNotSame(null, class1Deserialized.Class2.Class3); Assert.AreNotSame(null, class1Deserialized.Class3.Class2); Assert.AreNotSame(null, class1Deserialized.Class3.Class1); Assert.AreSame(class1Deserialized, class1Deserialized.Class2.Class1); Assert.AreSame(class1Deserialized, class1Deserialized.Class3.Class1); Assert.AreSame(class1Deserialized.Class2, class1Deserialized.Class3.Class2); Assert.AreSame(class1Deserialized.Class3, class1Deserialized.Class2.Class3); }
void protobuf_ToSerialize() { #if PROTOBUF Address add = new Address(); add.Line1 = "Perking"; add.Line2 = "LaMaTemper"; Person per = new Person(); per.Address = add; per.Id = 14; per.Name = "allen"; using (FileStream fs = File.Open(DeviceInfo.PersisitFullPath("proto"), FileMode.Create)) { var ser = new MySerializer(); ser.Serialize(fs, per); } #endif }
public override bool Serialize(BitStream stream, bool validate) { #if !XB1 // !XB1_SYNC_NOREFLECTION if (stream.Reading) { T newValue; MySerializer.CreateAndRead(stream, out newValue, SerializeInfo); return(SetValue(ref newValue, validate)); } else { MySerializer.Write(stream, ref m_value, SerializeInfo); return(true); } #else // XB1 System.Diagnostics.Debug.Assert(false); return(false); #endif // XB1 }
public override bool OnSave(BitStream stream, Endpoint clientEndpoint) { var entityId = Instance.Owner.EntityId; MySerializer.Write(stream, ref entityId); var num = 0; for (var i = 0; i < Instance.Owner.InventoryCount; i++) { if (Instance == Instance.Owner.GetInventory(i)) { num = i; break; } } MySerializer.Write(stream, ref num); return(true); }
private async void ReadProto(Button button) { var path = @"nwind.proto.bin"; var folder = Windows.ApplicationModel.Package.Current.InstalledLocation; var file = await folder.GetFileAsync(path); var readStream = await file.OpenReadAsync(); IInputStream inputSteam = readStream.GetInputStreamAt(0); DataReader dataReader = new DataReader(inputSteam); uint numBytesLoaded = await dataReader.LoadAsync((uint)readStream.Size); byte[] raw = new byte[readStream.Size]; dataReader.ReadBytes(raw); var ms = new MemoryStream(raw); var ser = new MySerializer(); var dal = (DAL.DatabaseCompat)ser.Deserialize(ms, null, typeof(DAL.DatabaseCompat)); StringBuilder perfStats = new StringBuilder(); perfStats.AppendLine(".NET for Metro style apps"); perfStats.AppendFormat("{0} orders from NWind", dal.Orders.Count).AppendLine(); var dcs = new DataContractSerializer(typeof(DAL.DatabaseCompat)); var xs = new XmlSerializer(typeof(DAL.DatabaseCompat)); using (var buffer = new MemoryStream()) { const int loop = 50; var watch = Stopwatch.StartNew(); for (int i = 0; i < loop; i++) { buffer.SetLength(0); dcs.WriteObject(buffer, dal); } watch.Stop(); perfStats.AppendLine().AppendLine().AppendLine("DataContractSerializer:").AppendFormat("WriteObject x {0}: {1:###,###}ms, {2:###,###} bytes", loop, watch.ElapsedMilliseconds, buffer.Length); watch = Stopwatch.StartNew(); for (int i = 0; i < loop; i++) { buffer.Position = 0; dcs.ReadObject(buffer); } watch.Stop(); perfStats.AppendLine().AppendFormat("ReadObject x {0}: {1:###,###}ms", loop, watch.ElapsedMilliseconds); watch = Stopwatch.StartNew(); for (int i = 0; i < loop; i++) { buffer.SetLength(0); xs.Serialize(buffer, dal); } watch.Stop(); perfStats.AppendLine().AppendLine().AppendLine("XmlSerializer:").AppendFormat("Serialize x {0}: {1:###,###}ms, {2:###,###} bytes", loop, watch.ElapsedMilliseconds, buffer.Length); watch = Stopwatch.StartNew(); for (int i = 0; i < loop; i++) { buffer.Position = 0; xs.Deserialize(buffer); } watch.Stop(); perfStats.AppendLine().AppendFormat("Deserialize x {0}: {1:###,###}ms", loop, watch.ElapsedMilliseconds); watch = Stopwatch.StartNew(); for (int i = 0; i < loop; i++) { buffer.SetLength(0); ser.Serialize(buffer, dal); } watch.Stop(); perfStats.AppendLine().AppendLine().AppendLine("protobuf-net").AppendFormat("Serialize x {0}: {1:###,###}ms, {2:###,###} bytes", loop, watch.ElapsedMilliseconds, buffer.Length); watch = Stopwatch.StartNew(); for (int i = 0; i < loop; i++) { buffer.Position = 0; ser.Deserialize(buffer, null, typeof(DAL.DatabaseCompat)); } watch.Stop(); perfStats.AppendLine().AppendFormat("Deserialize x {0}: {1:###,###}ms", loop, watch.ElapsedMilliseconds); watch = Stopwatch.StartNew(); for (int i = 0; i < loop; i++) { buffer.SetLength(0); Serializer.Serialize(buffer, dal); } watch.Stop(); perfStats.AppendLine().AppendLine().AppendLine("protobuf-net (runtime)").AppendFormat("Serialize x {0}: {1:###,###}ms, {2:###,###} bytes", loop, watch.ElapsedMilliseconds, buffer.Length); watch = Stopwatch.StartNew(); for (int i = 0; i < loop; i++) { buffer.Position = 0; Serializer.Deserialize<DAL.DatabaseCompat>(buffer); } watch.Stop(); perfStats.AppendLine().AppendFormat("Deserialize x {0}: {1:###,###}ms", loop, watch.ElapsedMilliseconds); } button.Content = perfStats.ToString(); // test SM2Stats bool isSer = ser.CanSerializeContractType(typeof(SM2Stats)); SM2Stats stats = new SM2Stats { acqreps = 1, difficultyhistory = { new DiffHistPair { date = 123, values = { 3.4f }} } }; var clone = (SM2Stats)ser.DeepClone(stats); // checked by eye; is the same }
public void WhenNoTypesAreRegisteredInSerializerItThrowsOnSerialization() { AbstractSerializer s = new MySerializer(); AssertThrows<InvalidOperationException>(() => s.Serialize(new { })); }