コード例 #1
0
        public void Execute()
        {
            var m1 = new M1();
            var m2_1 = new M2();
            var m2_2 = new M2();
            var m2_3 = new M2();

            using (Stream stream = new MemoryStream())
            {
                var serializer = SerializerFactory.Create(typeof(IMyBusMessage), typeof(M1), typeof(M2));
                serializer.Serialize(new object[] {m1, m2_1, m2_2, m2_3}, stream);

                stream.Position = 0;

                var messageDeserialized = serializer.Deserialize(stream);
                Assert.IsInstanceOf<M1>(messageDeserialized[0]);
                Assert.IsInstanceOf<M2>(messageDeserialized[1]);
                Assert.IsInstanceOf<M2>(messageDeserialized[2]);
                Assert.IsInstanceOf<M2>(messageDeserialized[3]);
            }
        }
コード例 #2
0
        public void Should_throw_an_exception()
        {
           var m2_1 = new M2();
           var m2_2 = new M2();
           var m2_3 = new M2();

           using (Stream stream = new MemoryStream())
           {
               var serializer = SerializerFactory.Create(typeof(IMyBusMessage), typeof(M1), typeof(M2));
               //var exception = Assert.Throws<Exception>(() => serializer.Initialize(new[] { typeof(IMyBusMessage), typeof(M1), typeof(M2) }));
               //Assert.AreEqual("Nested types are not supported by the XmlMessageSerializer.", exception.Message);
               var m1 = new M1();
               serializer.Serialize(new object[] {m1, m2_1, m2_2, m2_3}, stream);
               stream.Position = 0;
               var messageDeserialized = serializer.Deserialize(stream);
               Assert.IsInstanceOf<M1>(messageDeserialized[0]);
               Assert.IsInstanceOf<M2>(messageDeserialized[1]);
               Assert.IsInstanceOf<M2>(messageDeserialized[2]);
               Assert.IsInstanceOf<M2>(messageDeserialized[3]);
           }

        }