Пример #1
0
        public static void Example()
        {
            Console.Out.WriteLine("");
            Console.Out.WriteLine("### Test 2");
            Console.Out.WriteLine("");

            var a = new ExampleA()
            {
                FirstName = "Jim", LastName = "Smith"
            };

            Console.Out.WriteLine(a.GetType().FullName);
            Console.Out.WriteLine(a.GetFullName());

            Console.Out.WriteLine("");

            var b = new ExampleB()
            {
                FirstName = "Jane", LastName = "Silver", Address = "123 Main st.", City = "New York", State = "NY", ZipCode = "10012"
            };

            Console.Out.WriteLine(b.GetType().FullName);
            Console.Out.WriteLine(b.GetFullName());
            Console.Out.WriteLine(b.GetAddress());
        }
Пример #2
0
        public void TestCycleSerializationDeserializationB()
        {
            ExampleA a_own = new ExampleA(1.0f, "testA", new DateTime(1998, 12, 1, 0, 0, 0), null);
            ExampleB b_own = new ExampleB(2.0f, "testB", new DateTime(1999, 11, 2, 0, 0, 0), null);
            ExampleC c_own = new ExampleC(3.0f, "testC", new DateTime(2000, 10, 3, 0, 0, 0), null);

            a_own.Reference = b_own;
            b_own.Reference = c_own;
            c_own.Reference = a_own;

            MemoryStream ms = new MemoryStream();

            IFormatter formatter = new StringFormatter(new StringBinder());

            formatter.Serialize(ms, b_own);

            ExampleB deserializedB = (ExampleB)formatter.Deserialize(new MemoryStream(ms.ToArray()));

            Assert.AreEqual(b_own.FloatTest, deserializedB.FloatTest);
            Assert.AreEqual(b_own.StringTest, deserializedB.StringTest);
            Assert.AreEqual(b_own.DateTest, deserializedB.DateTest);

            Assert.AreEqual(b_own.Reference.FloatTest, deserializedB.Reference.FloatTest);
            Assert.AreEqual(b_own.Reference.StringTest, deserializedB.Reference.StringTest);
            Assert.AreEqual(b_own.Reference.DateTest, deserializedB.Reference.DateTest);

            Assert.AreEqual(b_own.Reference.Reference.FloatTest, deserializedB.Reference.Reference.FloatTest);
            Assert.AreEqual(b_own.Reference.Reference.StringTest, deserializedB.Reference.Reference.StringTest);
            Assert.AreEqual(b_own.Reference.Reference.DateTest, deserializedB.Reference.Reference.DateTest);

            Assert.AreSame(deserializedB, deserializedB.Reference.Reference.Reference);
            Assert.AreSame(deserializedB.Reference, deserializedB.Reference.Reference.Reference.Reference);
            Assert.AreSame(deserializedB.Reference.Reference, deserializedB.Reference.Reference.Reference.Reference.Reference);
        }
Пример #3
0
        public void TestNullReferenceSerializationDeserializationB()
        {
            ExampleB b = new ExampleB(1.0f, "testB", new DateTime(1998, 12, 1, 0, 0, 0), null);

            MemoryStream ms        = new MemoryStream();
            IFormatter   formatter = new StringFormatter(new StringBinder());

            formatter.Serialize(ms, b);

            ExampleB deserializedB = (ExampleB)formatter.Deserialize(new MemoryStream(ms.ToArray()));

            Assert.AreEqual(b.FloatTest, deserializedB.FloatTest);
            Assert.AreEqual(b.StringTest, deserializedB.StringTest);
            Assert.AreEqual(b.DateTest, deserializedB.DateTest);
        }
Пример #4
0
        public void IsNot_BIsNotB_ShouldReturnFalse()
        {
            var input = new ExampleB();

            Assert.False(input.IsNot <ExampleB>());
        }
Пример #5
0
        public void IsNot_BIsNotA_ShouldReturnTrue()
        {
            var input = new ExampleB();

            Assert.True(input.IsNot <ExampleA>());
        }
Пример #6
0
        private void DoSerializationMenu(Format format)
        {
            if (format == Format.OWN)
            {
                bool run  = true;
                bool walk = true;
                SerializationBinder binder    = new StringBinder();
                Formatter           formatter = new StringFormatter(binder);

                while (run)
                {
                    Console.WriteLine("\nDo you want to serialize [s] or deserialize [d]: \n");
                    char choice = Console.ReadKey().KeyChar;

                    switch (choice)
                    {
                    case 's':

                        ExampleA exampleA = new ExampleA(1.0f, "testA", new DateTime(1998, 12, 1, 0, 0, 0), null);
                        ExampleB exampleB = new ExampleB(2.0f, "testB", new DateTime(1999, 12, 1, 0, 0, 0), null);
                        ExampleC exampleC = new ExampleC(3.0f, "testC", new DateTime(2000, 12, 1, 0, 0, 0), null);

                        exampleA.Reference = exampleB;
                        exampleB.Reference = exampleC;
                        exampleC.Reference = exampleA;


                        while (walk)
                        {
                            Console.WriteLine("\nWhich class from test one you want to serialize, ExampleA [a], ExampleB [b], ExampleC [c]: \n");
                            char example = Console.ReadKey().KeyChar;

                            switch (example)
                            {
                            case 'a':
                                using (Stream stream = new FileStream("Own Serialization Example A.txt", FileMode.Create))
                                {
                                    formatter.Serialize(stream, exampleA);
                                }
                                walk = false;
                                break;

                            case 'b':
                                using (Stream stream = new FileStream("Own Serialization Example B.txt", FileMode.Create))
                                {
                                    formatter.Serialize(stream, exampleB);
                                }
                                walk = false;
                                break;

                            case 'c':
                                using (Stream stream = new FileStream("Own Serialization Example C.txt", FileMode.Create))
                                {
                                    formatter.Serialize(stream, exampleC);
                                }
                                walk = false;
                                break;

                            default:
                                Console.WriteLine("\nInvalid choice of clas for example.");
                                break;
                            }
                        }

                        run = false;
                        break;

                    case 'd':

                        ExampleA exampleA_Des = null;
                        ExampleB exampleB_Des = null;
                        ExampleC exampleC_Des = null;

                        while (walk)
                        {
                            Console.WriteLine("\nWhich class from test one you want to serialize, ExampleA [a], ExampleB [b], ExampleC [c]: \n");
                            char example = Console.ReadKey().KeyChar;

                            switch (example)
                            {
                            case 'a':
                                using (Stream stream = new FileStream("Own Serialization Example A.txt", FileMode.Open))
                                {
                                    exampleA_Des = (ExampleA)formatter.Deserialize(stream);
                                }
                                if (exampleA_Des.Reference.Reference.Reference == exampleA_Des)
                                {
                                    Console.WriteLine("\nDeserialization ended correctly.");
                                }
                                else
                                {
                                    Console.WriteLine("\nSomething went wrong.");
                                }
                                walk = false;
                                break;


                            case 'b':
                                using (Stream stream = new FileStream("Own Serialization Example B.txt", FileMode.Open))
                                {
                                    exampleB_Des = (ExampleB)formatter.Deserialize(stream);
                                }
                                if (exampleB_Des.Reference.Reference.Reference == exampleB_Des)
                                {
                                    Console.WriteLine("\nDeserialization ended correctly.");
                                }
                                else
                                {
                                    Console.WriteLine("\nSomething went wrong.");
                                }
                                walk = false;
                                break;

                            case 'c':
                                using (Stream stream = new FileStream("Own Serialization Example C.txt", FileMode.Open))
                                {
                                    exampleC_Des = (ExampleC)formatter.Deserialize(stream);
                                }
                                if (exampleC_Des.Reference.Reference.Reference == exampleC_Des)
                                {
                                    Console.WriteLine("\nDeserialization ended correctly.");
                                }
                                else
                                {
                                    Console.WriteLine("\nSomething went wrong.");
                                }
                                walk = false;
                                break;

                            default:
                                Console.WriteLine("\nInvalid choice of clas for example.");
                                break;
                            }
                        }
                        run = false;
                        break;

                    default:
                        Console.WriteLine("\nInvalid choice.");
                        break;
                    }
                }
            }
            else if (format == Format.XML)
            {
                bool run  = true;
                bool walk = true;



                while (run)
                {
                    Console.WriteLine("\nDo you want to serialize [s] or deserialize [d]: \n");
                    char choice = Console.ReadKey().KeyChar;

                    switch (choice)
                    {
                    case 's':

                        ExampleXmlA exampleA = new ExampleXmlA(1.0f, "testA", new DateTime(1998, 12, 1, 0, 0, 0), null);
                        ExampleXmlB exampleB = new ExampleXmlB(2.0f, "testB", new DateTime(1999, 12, 1, 0, 0, 0), null);
                        ExampleXmlC exampleC = new ExampleXmlC(3.0f, "testC", new DateTime(2000, 12, 1, 0, 0, 0), null);

                        exampleA.Reference = exampleB;
                        exampleB.Reference = exampleC;
                        exampleC.Reference = exampleA;

                        while (walk)
                        {
                            Console.WriteLine("\nWhich class from test one you want to serialize, ExampleA [a], ExampleB [b], ExampleC [c]: ");
                            char example = Console.ReadKey().KeyChar;



                            switch (example)
                            {
                            case 'a':
                                XmlSerializationHelper <ExampleXmlA> .Serialize("Xml Serialization Example A.txt", exampleA);

                                walk = false;
                                break;

                            case 'b':
                                XmlSerializationHelper <ExampleXmlB> .Serialize("Xml Serialization Example B.txt", exampleB);

                                walk = false;
                                break;

                            case 'c':
                                XmlSerializationHelper <ExampleXmlC> .Serialize("Xml Serialization Example C.txt", exampleC);

                                walk = false;
                                break;

                            default:
                                Console.WriteLine("\nInvalid choice of clas for example.");
                                break;
                            }
                        }
                        run = false;
                        break;

                    case 'd':

                        ExampleXmlA exampleA_Des = null;
                        ExampleXmlB exampleB_Des = null;
                        ExampleXmlC exampleC_Des = null;


                        while (walk)
                        {
                            Console.WriteLine("\nWhich class from test one you want to serialize, ExampleA [a], ExampleB [b], ExampleC [c]: ");
                            char example = Console.ReadKey().KeyChar;
                            switch (example)
                            {
                            case 'a':
                                exampleA_Des = XmlSerializationHelper <ExampleXmlA> .Deserilize("Xml Serialization Example A.txt");

                                if (exampleA_Des.Reference.Reference.Reference == exampleA_Des)
                                {
                                    Console.WriteLine("\nDeserialization ended correctly.");
                                }
                                else
                                {
                                    Console.WriteLine("\nSomething went wrong.");
                                }
                                walk = false;
                                break;

                            case 'b':
                                exampleB_Des = XmlSerializationHelper <ExampleXmlB> .Deserilize("Xml Serialization Example B.txt");

                                if (exampleB_Des.Reference.Reference.Reference == exampleB_Des)
                                {
                                    Console.WriteLine("\nDeserialization ended correctly.");
                                }
                                else
                                {
                                    Console.WriteLine("\nSomething went wrong.");
                                }
                                walk = false;
                                break;

                            case 'c':
                                exampleC_Des = XmlSerializationHelper <ExampleXmlC> .Deserilize("Xml Serialization Example C.txt");

                                if (exampleC_Des.Reference.Reference.Reference == exampleC_Des)
                                {
                                    Console.WriteLine("\nDeserialization ended correctly.");
                                }
                                else
                                {
                                    Console.WriteLine("\nSomething went wrong.");
                                }
                                walk = false;
                                break;

                            default:
                                Console.WriteLine("\nInvalid choice of clas for example.");
                                break;
                            }
                        }
                        run = false;
                        break;


                    default:
                        Console.WriteLine("\nInvalid choice.");
                        break;
                    }
                }
            }
            else
            {
                Console.WriteLine("\nWrong format was choosen.");
            }
        }