Пример #1
0
        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);
            }
        }
Пример #2
0
        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}]");
                }
            }
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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");
            }
        }
Пример #5
0
        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);
        }
Пример #6
0
        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.");
        }
Пример #7
0
        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.");
        }
Пример #8
0
        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));
        }
Пример #10
0
        internal ProfileContainer Clone()
        {
            var formatter = new XmlFormatter <ProfileContainer>();
            var stream    = new MemoryStream();

            formatter.Serialize(this, stream);
            stream.Position = 0;
            return(formatter.Deserialize(stream));
        }
Пример #11
0
        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));
        }
Пример #12
0
        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);
            }
        }
Пример #13
0
 private void SaveProcessDescription()
 {
     foreach (var part in ProcessDescParts)
     {
         var xmlDoc = XDocument.Load(part.GetStream());
         IWfProcessDescriptor wfProcessDesc = (IWfProcessDescriptor)XmlFormatter.Deserialize(xmlDoc.Root);
         WfProcessDescHelper.SaveWfProcess(wfProcessDesc);
     }
 }
Пример #14
0
        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);
            }
        }
Пример #15
0
        /// <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));
        }
Пример #16
0
        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));
        }
Пример #17
0
        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);
        }
Пример #18
0
        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));
                }
        }
Пример #21
0
        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);
        }
Пример #22
0
        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);
        }
Пример #23
0
        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);
            }
        }
Пример #24
0
        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);
            }
        }
Пример #25
0
        public static ProfileContainer Get()
        {
            var filename = GetFilename();

            if (File.Exists(filename))
            {
                var formatter = new XmlFormatter <ProfileContainer>();
                return(formatter.Deserialize(filename));
            }
            else
            {
                return(new ProfileContainer());
            }
        }
Пример #26
0
        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);
                }
        }
Пример #27
0
        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)
            {
            }
        }
Пример #28
0
        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);
        }
Пример #29
0
        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.");
        }
Пример #30
0
        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());
            }
        }
Пример #31
0
        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));
 }
Пример #33
0
        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;
             //}
        }