コード例 #1
0
        public void MarshalSerializerTest()
        {
            var testClass = new ClassForTestsOfMarshalSerializer
            {
                B     = 1,
                UsBe  = 2,
                UsLe  = 3,
                SBe   = -3,
                SLe   = -4,
                UiBe  = 5,
                UiLe  = 6,
                IBe   = -7,
                ILe   = 8,
                UlBe  = 9,
                UlLe  = 10,
                LBe   = -11,
                LLe   = -12,
                FBe   = 1.2345f,
                FLe   = -2.3456f,
                DBe   = 3.4567,
                DLe   = -4.5678f,
                Array = new byte[64]
            };

            for (int i = 0; i < 64; i++)
            {
                testClass.Array[i] = (byte)i;
            }

            var buf = MarshalSerializer.RawSerialize(testClass);

            var deserializedObject = MarshalSerializer.RawDeserialize <ClassForTestsOfMarshalSerializer>(buf);

            Assert.AreEqual(testClass.B, deserializedObject.B);
            Assert.AreEqual(testClass.UsBe, deserializedObject.UsBe);
            Assert.AreEqual(testClass.UsLe, deserializedObject.UsLe);
            Assert.AreEqual(testClass.SBe, deserializedObject.SBe);
            Assert.AreEqual(testClass.SLe, deserializedObject.SLe);
            Assert.AreEqual(testClass.UiBe, deserializedObject.UiBe);
            Assert.AreEqual(testClass.UiLe, deserializedObject.UiLe);
            Assert.AreEqual(testClass.IBe, deserializedObject.IBe);
            Assert.AreEqual(testClass.ILe, deserializedObject.ILe);
            Assert.AreEqual(testClass.UlBe, deserializedObject.UlBe);
            Assert.AreEqual(testClass.UlLe, deserializedObject.UlLe);
            Assert.AreEqual(testClass.LBe, deserializedObject.LBe);
            Assert.AreEqual(testClass.LLe, deserializedObject.LLe);
            Assert.AreEqual(testClass.FBe, deserializedObject.FBe);
            Assert.AreEqual(testClass.FLe, deserializedObject.FLe);
            Assert.AreEqual(testClass.DBe, deserializedObject.DBe);
            Assert.AreEqual(testClass.DLe, deserializedObject.DLe);
            Assert.AreEqual(testClass.Array.Length, deserializedObject.Array.Length);

            for (int i = 0; i < 64; i++)
            {
                Assert.AreEqual(testClass.Array[i], deserializedObject.Array[i]);
            }
        }
コード例 #2
0
        public void Validate_MarshalSeriazlier()
        {
            SimpleStruct data = new SimpleStruct();
            MarshalSerializer <SimpleStruct> serializer = new MarshalSerializer <SimpleStruct>();
            var bytes  = serializer.ObjectToBytes(data);
            var result = serializer.BytesToObject(bytes);

            Assert.AreEqual(data.Num, result.Num);
            Assert.AreEqual(data.Age, result.Age);
            Assert.AreEqual(data.False, result.False);
            Assert.AreEqual(data.La, result.La);
        }
コード例 #3
0
        private IKeyValueStore <Guid, Book> CreateStore(KeyValuePair <Guid, Book>[] randomData, Mode mode)
        {
            using (logger.BeginTimedOperation("Create store with " + randomData.Length + " items", mode.ToString()))
            {
                switch (mode)
                {
                case Mode.FileIndexKeyValueStorageNewtonsoft:
                {
                    var serializer = new JsonSerializer <Book>();

                    return(CreateFileIndexKeyValueStorage(randomData, serializer, "temp.raw"));
                }

                case Mode.FileIndexKeyValueStorageProtobuf:
                {
                    var serializer = new ProtobufSerializer <Book>();

                    return(CreateFileIndexKeyValueStorage(randomData, serializer, "temp2.raw"));
                }

                case Mode.FileIndexKeyValueStorageMarshal:
                {
                    var serializer = new MarshalSerializer <Book>();

                    return(CreateFileIndexKeyValueStorage(randomData, serializer, "temp4.raw"));
                }

                case Mode.InMemory:
                {
                    return(new InMemoryKeyValueStorage <Guid, Book>(randomData));
                }

                default:
                    throw new Exception("Unexpected storage mode: " + mode);
                }
            }
        }