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 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}]"); } } }
private IRecipe SaveRecipeCore(string filename, IRecipe recipe) { if (filename == null) { throw new ArgumentNullException("fileName"); } if (string.IsNullOrEmpty(filename)) { throw new ArgumentException("FileName cannot be null"); } if (recipe == null) { throw new ArgumentNullException("recipe"); } var formatter = new XmlFormatter(); Meal.Svc.Persistance.Recipe r = recipe as Meal.Svc.Persistance.Recipe ?? Meal.Svc.Persistance.Recipe.FromRecipe(recipe); using (var stream = System.IO.File.Create(filename)) { formatter.Serialize(stream, r); stream.Close(); } return(recipe); }
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 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 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 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 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 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"); } }
protected virtual void CreatePackage(Stream stream) { using (Package package = ZipPackage.Open(stream, FileMode.Create)) { Uri collectionUri = new Uri("/Content/Collection.xml", UriKind.Relative); PackagePart part = package.CreatePart(collectionUri, System.Net.Mime.MediaTypeNames.Text.Xml, CompressionOption.Maximum); //Serialize the model into the part stream XmlFormatter formatter = Formatter; formatter.Shallow = false; formatter.Serialize(part.GetStream(), Model); package.CreateRelationship(part.Uri, TargetMode.Internal, "Main Document"); //Loop through all resources and create parts foreach (string key in Formatter.Resources.Keys) { Uri resourceUri = new Uri(key, UriKind.Relative); ResourceEntry entry = Formatter.Resources[key]; //Need to use a valid mime type otherwise a null reference error occurs PackagePart resourcePart = package.CreatePart(resourceUri, entry.GetMimeType(), CompressionOption.Maximum); entry.SaveResourceStream(resourcePart.GetStream()); PackageRelationship relationship = package.CreateRelationship(resourcePart.Uri, TargetMode.Internal, "Resource"); } //Close the package and save all the underlying streams package.Close(); } }
protected virtual void WriteToFile(Map map, string filename, ZipFile mapFile) { var mapBaseFileName = map.MapName; mapFile.AddEntry(GetStaticFileName(), (name, f) => formatter.Serialize(f, map.StaticData)); mapFile.AddEntry(GetDynamicFileName(), (name, f) => formatter.Serialize(f, map.DynamicData)); foreach (var language in map.StringLocalizationStorage.GetLanguages()) { string fn = null; if (language == "en") { fn = "strings.resx"; } else { fn = "strings." + language + ".resx"; } mapFile.AddEntry(fn, (name, stream) => map.StringLocalizationStorage.WriteLanguageToStream(language, stream)); } mapFile.AddEntry(GetSettingsFileName(), (name, f) => formatter.Serialize(f, map.Settings)); if (map.Ground.SplatMap1 != null) { mapFile.AddEntry(GetSplatTexture1FileName(), (name, stream) => SlimDX.Direct3D9.BaseTexture.ToStream(map.Ground.SplatMap1.Resource9, SlimDX.Direct3D9.ImageFileFormat.Png).CopyTo(stream)); } if (map.Ground.SplatMap2 != null) { mapFile.AddEntry(GetSplatTexture2FileName(), (name, stream) => SlimDX.Direct3D9.BaseTexture.ToStream(map.Ground.SplatMap2.Resource9, SlimDX.Direct3D9.ImageFileFormat.Png).CopyTo(stream)); } mapFile.AddEntry(GetHeightmapFileName(), (name, stream) => SerializeHeightmap(map, stream)); }
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 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); } }
protected string ToHttpString() { XmlFormatter formatter = new XmlFormatter(); //BinaryFormatter formatter = new BinaryFormatter(); MemoryStream stream = new MemoryStream(); formatter.Serialize(stream, this); stream.Close(); byte[] b = stream.ToArray(); return(Uri.EscapeDataString(Convert.ToBase64String(b))); }
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 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 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); } }
private string ConvertToStoredValue(MultiCulturalString typedValue) { using (Stream stream = new MemoryStream()) { IFormatter formatter = new XmlFormatter(typeof(MultiCulturalString), "http://custis.ru/i18n"); formatter.Serialize(stream, typedValue); stream.Flush(); stream.Position = 0; using (TextReader reader = new StreamReader(stream)) { return(reader.ReadToEnd()); } } }
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 TestSerialize() { using (Stream stream = new MemoryStream()) { IFormatter formatter = new XmlFormatter(typeof(MultiCulturalString), "http://custis.ru/i18n"); formatter.Serialize(stream, _mcs); stream.Flush(); stream.Position = 0; using (TextReader reader = new StreamReader(stream)) { var result = reader.ReadToEnd(); Assert.AreEqual(_serializedMcs, result); } } }
public IRecipe SaveRecipe(string filename, IRecipe recipe) { var formatter = new XmlFormatter(); Meal.Svc.Persistance.Recipe r = recipe as Meal.Svc.Persistance.Recipe ?? Meal.Svc.Persistance.Recipe.FromRecipe(recipe); using (var stream = System.IO.File.Create(filename)) { //XamlWriter.Save (r, stream); formatter.Serialize(stream, r); stream.Close(); } return(recipe); }
internal bool Save(string folder) { var filename = Path.Combine(folder, Filename); try { var formatter = new XmlFormatter <ImportState>(); formatter.Serialize(this, filename); return(true); } catch (Exception exeption) { Trace.WriteLine($"failed - {filename} - {exeption.Message}", "state save"); } return(false); }
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 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 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 SerializationSubclassTest() { Link object1 = new Link(new Point(100, 100), new Point(200, 200));//Create a line with the same origin for testing //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 Link object2; using (MemoryStream stream2 = new MemoryStream(Encoding.UTF8.GetBytes(xml.Value))) { object2 = (Link )serializer.Deserialize(stream2); } }
public void SerializationShapeTest() { Shape object1 = new Shape(); //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 Shape object2; using (MemoryStream stream2 = new MemoryStream(Encoding.UTF8.GetBytes(xml.Value))) { object2 = (Shape)serializer.Deserialize(stream2); } }
public void ListOfTTest() { var cut = new XmlFormatter <CollectionData>(); var data = new CollectionData { Names = new List <string> { "Alice", "Bob", "Charles" } }; cut.Serialize(data, Filename); var read = cut.Deserialize(Filename); Assert.AreEqual(data.Names.Count, read.Names.Count); for (var i = 0; i < read.Names.Count; 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)); }
private IRecipe SaveRecipeCore(string filename, IRecipe recipe) { if (filename == null) throw new ArgumentNullException ("fileName"); if (string.IsNullOrEmpty (filename)) throw new ArgumentException ("FileName cannot be null"); if (recipe == null) throw new ArgumentNullException ("recipe"); var formatter = new XmlFormatter (); Meal.Svc.Persistance.Recipe r = recipe as Meal.Svc.Persistance.Recipe ?? Meal.Svc.Persistance.Recipe.FromRecipe (recipe); using (var stream = System.IO.File.Create (filename)) { formatter.Serialize (stream, r); stream.Close (); } return recipe; }
public IRecipe SaveRecipe(string filename, IRecipe recipe) { var formatter = new XmlFormatter (); Meal.Svc.Persistance.Recipe r = recipe as Meal.Svc.Persistance.Recipe ?? Meal.Svc.Persistance.Recipe.FromRecipe (recipe); using (var stream = System.IO.File.Create (filename)) { //XamlWriter.Save (r, stream); formatter.Serialize (stream, r); stream.Close (); } return recipe; }