public void SerializationBlankTest() { //Serialize an element with a blank serializer Element object1 = new Element(); //Serialize the object MemoryStream stream = new MemoryStream(); XmlFormatter serializer = new XmlFormatter(); SurrogateSelector selector = new SurrogateSelector(); StreamingContext context = new StreamingContext(StreamingContextStates.All); //Need to ensure a context is supplied selector.AddSurrogate(typeof(Element), context, new BlankSerialize()); serializer.SurrogateSelector = selector; serializer.Serialize(stream, object1); stream.Position = 0; // reset the stream to the beginning SqlXml xml = new SqlXml(stream); //Recreate the object in object 2 Element object2; using (MemoryStream stream2 = new MemoryStream(Encoding.UTF8.GetBytes(xml.Value))) { object2 = (Element)serializer.Deserialize(stream2); } }
public void MultiArrayTest() { var cut = new XmlFormatter <ArrayData>(); var data = new ArrayData { Numbers = new int[3, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 } } }; cut.Serialize(data, Filename); var read = cut.Deserialize(Filename); var dataN = data.Numbers; var readN = read.Numbers; Assert.AreEqual(dataN.Length, readN.Length); Assert.AreEqual(dataN.Rank, readN.Rank); Assert.AreEqual(dataN.GetUpperBound(0), readN.GetUpperBound(0)); Assert.AreEqual(dataN.GetUpperBound(1), readN.GetUpperBound(1)); for (var i = 0; i < dataN.GetUpperBound(0); i++) { for (int j = 0; j < dataN.GetUpperBound(1); j++) { Assert.AreEqual(dataN[i, j], readN[i, j], $"Array[{i},{j}]"); } } }
public void SerializationExternalAssemblyTest() { SubElement object1 = new SubElement(); SurrogateSelector selector = new SurrogateSelector(); selector.AddSurrogate(typeof(SubElement), new StreamingContext(StreamingContextStates.All), new ElementSerialize()); //Serialize the object MemoryStream stream = new MemoryStream(); XmlFormatter serializer = new XmlFormatter(); serializer.SurrogateSelector = selector; serializer.Serialize(stream, object1); stream.Position = 0; // reset the stream to the beginning SqlXml xml = new SqlXml(stream); //Recreate the object in object 2 Element object2; using (MemoryStream stream2 = new MemoryStream(Encoding.UTF8.GetBytes(xml.Value))) { object2 = (Element)serializer.Deserialize(stream2); } }
public void WriteAndReadBadSubData() { var cut = new XmlFormatter <SomeData>(); var data = new SomeData { Name = null, Number = 0.42M + GetHashCode(), DataAfterObject = $"Some text after object at {GetHashCode()}", SubData = new BadSubData($"Info at {GetHashCode()}"), Names = new[] { "Name1", "Name2" }, }; cut.Serialize(data, Filename); var read = cut.Deserialize(Filename); Assert.AreEqual(data.Name, read.Name); Assert.AreEqual(data.Number, read.Number); Assert.AreEqual(data.YesNo, read.YesNo); Assert.AreEqual(data.Value, read.Value); Assert.AreNotEqual(data.SubData.Info, read.SubData.Info); Assert.AreEqual(data.DataAfterObject, read.DataAfterObject); Assert.AreNotEqual(data.NotGood, read.NotGood); Assert.AreEqual(data.Names.Length, read.Names.Length); for (var i = 0; i < data.Names.Length; i++) { Assert.AreEqual(data.Names[i], read.Names[i], $"Names[{i}] differ"); } }
public void SerializationShallowLineTest() { Link object1 = new Link(); //Serialize the object MemoryStream stream = new MemoryStream(); XmlFormatter serializer = new XmlFormatter(); serializer.Shallow = true; serializer.Serialize(stream, object1); stream.Position = 0; // reset the stream to the beginning SqlXml xml = new SqlXml(stream); //Recreate the object in object 2 using object 1 as the target Link object2; serializer.Target = object1; using (MemoryStream stream2 = new MemoryStream(Encoding.UTF8.GetBytes(xml.Value))) { object2 = (Link)serializer.Deserialize(stream2); } Assert.IsTrue(object1 == object2); }
public void SerializationElementListTest() { ElementList object1 = new ElementList(true); Shape shape1 = new Shape(); Shape shape2 = new Shape(); shape1.Location = new PointF(10, 10); shape2.Location = new PointF(20, 20); object1.Add(shape1); object1.Add(shape2); //Serialize the object MemoryStream stream = new MemoryStream(); XmlFormatter serializer = new XmlFormatter(); serializer.Serialize(stream, object1); stream.Position = 0; // reset the stream to the beginning SqlXml xml = new SqlXml(stream); //Recreate the object in object 2 ElementList object2; using (MemoryStream stream2 = new MemoryStream(Encoding.UTF8.GetBytes(xml.Value))) { object2 = (ElementList)serializer.Deserialize(stream2); } Shape shape3 = object2[0] as Shape; Shape shape4 = object2[1] as Shape; Assert.IsTrue(object2.Count == 2, "ElementList collection does not contain 2 items."); Assert.IsTrue(shape3.Location == new PointF(10, 10), "Collection item 'shape1' location not deserialized correctly."); Assert.IsTrue(shape4.Location == new PointF(20, 20), "Collection item 'shape2' location not deserialized correctly."); }
public void SerializationShapesTest() { Shapes object1 = new Shapes(new Model()); Shape shape1 = new Shape(); Shape shape2 = new Shape(); shape1.Location = new PointF(10, 10); shape2.Location = new PointF(20, 20); object1.Add("shape1", shape1); object1.Add("shape2", shape2); //Serialize the object MemoryStream stream = new MemoryStream(); XmlFormatter serializer = new XmlFormatter(); serializer.Serialize(stream, object1); stream.Position = 0; // reset the stream to the beginning SqlXml xml = new SqlXml(stream); //Recreate the object in object 2 Shapes object2; using (MemoryStream stream2 = new MemoryStream(Encoding.UTF8.GetBytes(xml.Value))) { object2 = (Shapes)serializer.Deserialize(stream2); } Assert.IsTrue(object2.Count == 2, "Shapes collection does not contain 2 items."); Assert.IsTrue(object2.ContainsKey("shape1"), "Shapes collection does not contain key 'shape1'."); Assert.IsTrue(object2.ContainsKey("shape2"), "Shapes collection does not contain key 'shape2'."); Assert.IsTrue(object2["shape1"].Location == new PointF(10, 10), "Collection item 'shape1' location not deserialized correctly."); Assert.IsTrue(object2["shape2"].Location == new PointF(20, 20), "Collection item 'shape2' location not deserialized correctly."); Assert.IsTrue(object2.Model != null, "Shapes Model not deserialized correctly."); }
public void WriteAndReadSafeData() { var cut = new XmlFormatter <SafeData>(); const string Secret = "S*ecret"; var data = new SafeData { Password = Secret }; var stream = new MemoryStream(); cut.Serialize(data, stream); stream.Position = 0; var read = cut.Deserialize(stream); stream.Position = 0; using (var reader = new StreamReader(stream)) { var text = reader.ReadToEnd(); Assert.IsTrue(!text.Contains(Secret), "serialization contains secret"); } Assert.AreEqual(data.Password, read.Password); }
public void Test1() { var o = new Test { String = "MyTest", Integer = 5, Float = 4.5f, Children = new List <Test> { new Test { String = "Child1" }, new Test { String = "Child2" } } }; var formatter = new XmlFormatter(); var m = new MemoryStream(); formatter.Serialize(m, o); m.Position = 0; System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture; var d = (Test)formatter.Deserialize(m); Assert.IsTrue(DeepComparer.Compare(o, d)); }
internal ProfileContainer Clone() { var formatter = new XmlFormatter <ProfileContainer>(); var stream = new MemoryStream(); formatter.Serialize(this, stream); stream.Position = 0; return(formatter.Deserialize(stream)); }
public void XmlFormatter_WhenCustomerHaveMultipleRentals_ShouldPass() { var customer = CustomerFactory.GetCustomer(); var xmlFormatter = new XmlFormatter(); var serializedData = customer.GetStatement(xmlFormatter); Customer actual = xmlFormatter.Deserialize(serializedData); Assert.True(customer.Equals(actual)); }
public void WriteAndRead() { var cut = new XmlFormatter <SomeData>(); var data = new SomeData { Name = null, Number = 0.42M + GetHashCode(), Time = DateTime.Now, Span = TimeSpan.FromMilliseconds(457575578), DataAfterObject = $"Some text after object at {GetHashCode()}", SubData = new SubData { Info = $"Info at {GetHashCode()}" }, Names = new[] { "Name1", "Name2" }, Products = { "product1", "product2", "product3" }, SubDatas = { { "Test1", new SubData { Info = $"Test1 dictionary at {GetHashCode()}" } }, { "Test2", new SubData { Info = $"Test2 dictionary at {GetHashCode()}" } } }, Location = new Point(5, 6) }; cut.Serialize(data, Filename); var read = cut.Deserialize(Filename); Assert.AreEqual(data.Name, read.Name); Assert.AreEqual(data.Number, read.Number); Assert.AreEqual(data.Time, read.Time); Assert.AreEqual(data.Span, read.Span); Assert.AreEqual(data.YesNo, read.YesNo); Assert.AreEqual(data.Value, read.Value); Assert.AreEqual(data.Location, read.Location); Assert.AreEqual(data.SubData.Info, read.SubData.Info); Assert.AreEqual(data.DataAfterObject, read.DataAfterObject); Assert.AreNotEqual(data.NotGood, read.NotGood); Assert.AreEqual(data.Names.Length, read.Names.Length); for (var i = 0; i < data.Names.Length; i++) { Assert.AreEqual(data.Names[i], read.Names[i], $"Names[{i}] differ"); } Assert.AreEqual(data.Products.Count, read.Products.Count); for (var i = 0; i < data.Products.Count; i++) { Assert.AreEqual(data.Products[i], read.Products[i], $"Products[{i}] differ"); } Assert.AreEqual(data.SubDatas.Count, read.SubDatas.Count); foreach (var key in data.SubDatas.Keys) { Assert.AreEqual(data.SubDatas[key].Info, read.SubDatas[key].Info); } }
private void SaveProcessDescription() { foreach (var part in ProcessDescParts) { var xmlDoc = XDocument.Load(part.GetStream()); IWfProcessDescriptor wfProcessDesc = (IWfProcessDescriptor)XmlFormatter.Deserialize(xmlDoc.Root); WfProcessDescHelper.SaveWfProcess(wfProcessDesc); } }
private void ParseMatrixDefinitions() { foreach (var part in MatrixDefParts) { var xDoc = XDocument.Load(part.GetStream()); var matrixDef = (WfMatrixDefinition)XmlFormatter.Deserialize(xDoc.Root); MatrixDefinitions.Add(matrixDef.Key, matrixDef); } }
/// <summary> /// Reads an object from the request body. /// </summary> /// <param name="context">The <see cref="InputFormatterContext" />.</param> /// <param name="encoding">The <see cref="Encoding" /> used to read the request body.</param> /// <returns>A <see cref="Task" /> that on completion deserializes the request body.</returns> public override Task <InputFormatterResult> ReadRequestBodyAsync(InputFormatterContext context, Encoding encoding) { Validator.ThrowIfNull(context, nameof(context)); Validator.ThrowIfNull(encoding, nameof(encoding)); var request = context.HttpContext.Request.EnableRewind(); var formatter = new XmlFormatter(FormatterOptions); var deserializedObject = formatter.Deserialize(request.Body, context.ModelType); return(InputFormatterResult.SuccessAsync(deserializedObject)); }
private T DeserializeItem(object item) { MemoryStream stream = new MemoryStream(_bytes); GZipStream zipStream = new GZipStream(stream, CompressionMode.Decompress); XmlFormatter serializer = Singleton.Instance.XmlFormatter; serializer.Shallow = true; serializer.Target = item; return((T)serializer.Deserialize(zipStream)); }
public static T FromHttpString(string s) { byte[] b2 = Convert.FromBase64String(Uri.UnescapeDataString(s)); MemoryStream stream = new MemoryStream(b2); XmlFormatter formatter = new XmlFormatter(); //BinaryFormatter formatter = new BinaryFormatter(); T obj = (T)formatter.Deserialize(stream); stream.Close(); return(obj); }
public void ReadOldDerivedSubData() { var cut = new XmlFormatter <SomeData>(); var read = cut.Deserialize(@"Data\SomeDataWithDerivedSubData.xml"); Assert.IsNotNull(read); Assert.IsInstanceOfType(read.SubData, typeof(DerivedSubData)); var readSubData = (DerivedSubData)read.SubData; Assert.AreEqual(readSubData.MoreInfo, "MoreInfo at 64019460"); }
public IRecipe LoadRecipe(string filename) { var formatter = new XmlFormatter (); using (var stream = System.IO.File.OpenRead (filename)) { object o = formatter.Deserialize (stream); if (o is Sellars.Meal.Svc.Persistance.Recipe) { ((Sellars.Meal.Svc.Persistance.Recipe)o).FileName = filename; } return (IRecipe)o; } }
private MultiCulturalString ParseStoredValue(string storedValue) { using (Stream stream = new MemoryStream()) using (TextWriter writer = new StreamWriter(stream)) { writer.Write(storedValue); writer.Flush(); stream.Position = 0; IFormatter formatter = new XmlFormatter(typeof(MultiCulturalString), "http://custis.ru/i18n"); return((MultiCulturalString)formatter.Deserialize(stream)); } }
public void WriteAndReadCultureName() { var cut = new XmlFormatter <SomeData>(); var data = new SomeData { Name = "äöü ÄÖÜ ß &<>" }; cut.Serialize(data, Filename); var read = cut.Deserialize(Filename); Assert.AreEqual(data.Name, read.Name); }
public void ContainerTest() { var cut = new XmlFormatter <Container <string> >(); var input = new Container <string> { Data = "Hello" }; cut.Serialize(input, Filename); var read = cut.Deserialize(Filename); Assert.AreEqual(input.Data, read.Data); }
public void WriteAndReadWithoutGenerics() { var cut = new XmlFormatter(typeof(SomeData)); var data = new SomeData { Name = null, Number = 0.42M + GetHashCode(), DataAfterObject = $"Some text after object at {GetHashCode()}", SubData = new SubData { Info = $"Info at {GetHashCode()}" }, Names = new[] { "Name1", "Name2" }, Products = { "product1", "product2", "product3" }, SubDatas = { { "Test1", new SubData { Info = $"Test1 dictionary at {GetHashCode()}" } }, { "Test2", new SubData { Info = $"Test2 dictionary at {GetHashCode()}" } } } }; cut.Serialize(data, Filename); var read = (SomeData)cut.Deserialize(Filename); Assert.AreEqual(data.Name, read.Name); Assert.AreEqual(data.Number, read.Number); Assert.AreEqual(data.YesNo, read.YesNo); Assert.AreEqual(data.Value, read.Value); Assert.AreEqual(data.SubData.Info, read.SubData.Info); Assert.AreEqual(data.DataAfterObject, read.DataAfterObject); Assert.AreNotEqual(data.NotGood, read.NotGood); Assert.AreEqual(data.Names.Length, read.Names.Length); for (var i = 0; i < data.Names.Length; i++) { Assert.AreEqual(data.Names[i], read.Names[i], $"Names[{i}] differ"); } Assert.AreEqual(data.Products.Count, read.Products.Count); for (var i = 0; i < data.Products.Count; i++) { Assert.AreEqual(data.Products[i], read.Products[i], $"Products[{i}] differ"); } Assert.AreEqual(data.SubDatas.Count, read.SubDatas.Count); foreach (var key in data.SubDatas.Keys) { Assert.AreEqual(data.SubDatas[key].Info, read.SubDatas[key].Info); } }
public IRecipe LoadRecipe(string filename) { var formatter = new XmlFormatter(); using (var stream = System.IO.File.OpenRead(filename)) { object o = formatter.Deserialize(stream); if (o is Sellars.Meal.Svc.Persistance.Recipe) { ((Sellars.Meal.Svc.Persistance.Recipe)o).FileName = filename; } return((IRecipe)o); } }
public static ProfileContainer Get() { var filename = GetFilename(); if (File.Exists(filename)) { var formatter = new XmlFormatter <ProfileContainer>(); return(formatter.Deserialize(filename)); } else { return(new ProfileContainer()); } }
public void TestDeserialize() { using (Stream stream = new MemoryStream()) using (TextWriter writer = new StreamWriter(stream)) { writer.Write(_serializedMcs); writer.Flush(); stream.Position = 0; IFormatter formatter = new XmlFormatter(typeof(MultiCulturalString), "http://custis.ru/i18n"); var mcs = formatter.Deserialize(stream); Assert.AreEqual(_mcs, mcs); } }
private static void ExceptionSerializationTest() { var formatter = new XmlFormatter(); var ms = new MemoryStream(); try { formatter.Serialize(ms, new NotImplementedException("test ex 23432"), typeof(Exception)); } catch (Exception ex) { } try { var exObject = new ServiceException("test ex 234234"); var type = exObject.GetType(); formatter.Serialize(ms, exObject, type); ms.Position = 0; var dexObj = formatter.Deserialize(ms, type); } catch (Exception ex) { } try { var exObject = new NotImplementedException("test ex 23432"); var type = exObject.GetType(); formatter.Serialize(ms, exObject, type); ms.Position = 0; var dexObj = formatter.Deserialize(ms, type); } catch (Exception ex) { } }
public void MemoryTest() { var cut = new XmlFormatter <Container <string> >(); var input = new Container <string> { Data = "Hello" }; var stream = new MemoryStream(); cut.Serialize(input, stream); stream.Position = 0; var read = cut.Deserialize(stream); Assert.AreEqual(input.Data, read.Data); }
public void SerializationDeepTargetTest() { //Set up the model Model model = new Model(); model.SetSize(new SizeF(1000, 1000)); //Set the container size so that the shape can be moved //Set up a shape element Shape shape = new Shape(); shape.Location = new PointF(100, 100); model.Shapes.Add("Shape1", shape); //Set up another shape element Shape shape2 = new Shape(); shape2.Location = new PointF(200, 200); model.Shapes.Add("Shape2", shape2); //Connect with a line Link line = new Link(shape, shape2); model.Lines.Add("Line1", line); //Serialize the model MemoryStream stream = new MemoryStream(); XmlFormatter serializer = new XmlFormatter(); serializer.Shallow = false; serializer.Serialize(stream, model); stream.Position = 0; // reset the stream to the beginning SqlXml xml = new SqlXml(stream); //Stream the data back into the same model object serializer.Target = model; using (MemoryStream stream2 = new MemoryStream(Encoding.UTF8.GetBytes(xml.Value))) { serializer.Deserialize(stream2); } Assert.IsTrue(model.Shapes.Count == 2, "Shapes count not set back to 2."); Assert.IsTrue(model.Lines.Count == 1, "Line count not set back to 1."); }
public void QueueTest() { var cut = new XmlFormatter <CollectionData>(); var data = new CollectionData { Queued = new Queue <string>(new[] { "Alice", "Bob", "Charles" }) }; cut.Serialize(data, Filename); var read = cut.Deserialize(Filename); Assert.AreEqual(data.Queued.Count, read.Queued.Count); while (read.Queued.Count > 0) { Assert.AreEqual(data.Queued.Dequeue(), read.Queued.Dequeue()); } }
public void SimpleArrayTest() { var cut = new XmlFormatter <ArrayData>(); var data = new ArrayData { Names = new[] { "Alice", "Bob", "Charles" } }; cut.Serialize(data, Filename); var read = cut.Deserialize(Filename); Assert.AreEqual(data.Names.Length, read.Names.Length); for (int i = 0; i < data.Names.Length; i++) { Assert.AreEqual(data.Names[i], read.Names[i], $"Names[{i}]"); } }
public void Test1() { var o = new Test { String = "MyTest", Integer = 5, Float = 4.5f, Children = new List<Test> { new Test { String = "Child1" }, new Test { String = "Child2" } } }; var formatter = new XmlFormatter(); var m = new MemoryStream(); formatter.Serialize(m, o); m.Position = 0; System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture; var d = (Test)formatter.Deserialize(m); Assert.IsTrue(DeepComparer.Compare(o, d)); }
public IRecipe LoadRecipe(string filename) { var formatter = new XmlFormatter (); using (var stream = System.IO.File.OpenRead (filename)) { object o = formatter.Deserialize (stream); return o as IRecipe; } //using (var stream = System.IO.File.OpenRead (filename)) //{ // object o = XamlReader.Load (stream); // var r = o as Sellars.Meal.Svc.Persistance.Recipe; // r.FileName = filename; // return o as IRecipe; //} }