コード例 #1
0
        public void TestMethodBinaryMessageSerialization()
        {
            BinaryMessageSerializer msgSerializer = new BinaryMessageSerializer();

            GenericMessage msg = new GenericMessage();

            msg.Type      = MessageType.MethodInvokeRequest;
            msg.Target    = typeof(TypeDescription).FullName;
            msg.Name      = "CallThisMethod(int)";
            msg.RequestId = 1;
            msg.Payload   = new object[] { 1, 2, 3, 4 };

            var bytes = msgSerializer.SerializeToBytes(msg, null);

            // 425
            DeserializeAndCheck(msgSerializer, msg, bytes);

            var bytes2 = msgSerializer.SerializeToBytes(msg, null);

            // 77
            DeserializeAndCheck(msgSerializer, msg, bytes2);

            var bytes3 = msgSerializer.SerializeToBytes(msg, null);

            // 77
            DeserializeAndCheck(msgSerializer, msg, bytes3);
        }
コード例 #2
0
        public void TestMethodBinaryMessageSerializationComplexPayloadWithResponse()
        {
            BinaryMessageSerializer msgSerializer = new BinaryMessageSerializer();

            var testItem = new TestItem()
            {
                ID = 5, Name = "Test it"
            };

            GenericMessage msg = new GenericMessage();

            msg.Type      = MessageType.MethodInvokeRequest;
            msg.Target    = typeof(ITestService).FullName;
            msg.Name      = "CallTest(BSAG.IOCTalk.Serialization.Binary.Test.Model.ITestItem)";
            msg.RequestId = 1;
            msg.Payload   = new object[] { testItem };

            var bytes = msgSerializer.SerializeToBytes(msg, null);

            BinaryMessageSerializer msgSerializerNewDeserialize = new BinaryMessageSerializer();

            GenericMessage deserializedMsg = (GenericMessage)msgSerializerNewDeserialize.DeserializeFromBytes(bytes, null);

            object[] payloadArr = (object[])deserializedMsg.Payload;

            ITestItem testItemDeserialized = (ITestItem)payloadArr.First();

            Assert.Equal(testItem.ID, testItemDeserialized.ID);
            Assert.Equal(testItem.Name, testItemDeserialized.Name);

            // response test
            GenericMessage msg2 = new GenericMessage();

            msg2.Type      = MessageType.MethodInvokeResponse;
            msg2.Target    = typeof(ITestService).FullName;
            msg2.Name      = "GetTestItem()";
            msg2.RequestId = 2;
            msg2.Payload   = testItem;

            var bytesMsg2 = msgSerializer.SerializeToBytes(msg2, null);

            GenericMessage deserializedMsg2 = (GenericMessage)msgSerializerNewDeserialize.DeserializeFromBytes(bytesMsg2, null);

            ITestItem deserializedTest2 = (ITestItem)deserializedMsg2.Payload;

            Assert.Equal(testItem.ID, deserializedTest2.ID);
            Assert.Equal(testItem.Name, deserializedTest2.Name);
        }