コード例 #1
0
        public void TestSerialize()
        {
            var message = new Message()
            {
                ID = 10, CreateDate = DateTime.Now, Data = "This is a test", test = new Test()
                {
                    Int = 100, Str = "Testing", UUID = Guid.NewGuid()
                }
            };

            message.Tests = new List <Test> {
                new Test()
                {
                    Int = 100, Str = "Testing", UUID = Guid.NewGuid()
                },
                new Test()
                {
                    Int = 100, Str = "Testing2", UUID = Guid.NewGuid()
                },
                new Test()
                {
                    Int = 100, Str = "Testing3", UUID = Guid.NewGuid()
                }
            };
            var buffer   = MessageSharkSerializer.Serialize(message);
            var message2 = MessageSharkSerializer.Deserialize <Message>(buffer);

            Assert.IsTrue(message.CreateDate == message2.CreateDate);
            Assert.IsTrue(message.Data == message2.Data);
            Assert.IsTrue(message.ID == message2.ID);
        }
コード例 #2
0
        public void SerializeDictionary()
        {
            Dictionary <string, string> whee = new Dictionary <string, string>();

            whee.Add("k", "v");
            var buffer = MessageSharkSerializer.Serialize(whee);
            var dict   = MessageSharkSerializer.Deserialize <Dictionary <string, string> >(buffer);
        }
コード例 #3
0
 public override object Deserialize(Stream inputStream)
 {
     inputStream.Seek(0, SeekOrigin.Begin);
     using (var ms = new MemoryStream())
     {
         inputStream.CopyTo(ms);
         return(MessageSharkSerializer.Deserialize <object>(ms.ToArray()));
     }
 }
コード例 #4
0
 public override string Serialize(object serializable)
 {
     using (var ms = new MemoryStream())
     {
         MessageSharkSerializer.Serialize(_primaryType, serializable, ms);
         ms.Flush();
         ms.Position = 0;
         return(Convert.ToBase64String(ms.ToArray()));
     }
 }
コード例 #5
0
        public override object Deserialize(string serialized)
        {
            var b = Convert.FromBase64String(serialized);

            using (var stream = new MemoryStream(b))
            {
                stream.Seek(0, SeekOrigin.Begin);
                return(MessageSharkSerializer.Deserialize(_primaryType, stream));
            }
        }
コード例 #6
0
 public void ShouldSerializeMessageWithObject()
 {
     object message = new Message()
     {
         ID = 10, CreateDate = DateTime.Now, Data = "This is a test", test = new Test()
         {
             Int = 100, Str = "Testing", UUID = Guid.NewGuid()
         }
     };
     var buffer   = MessageSharkSerializer.Serialize(message);
     var messageD = MessageSharkSerializer.Deserialize(typeof(Message), buffer);
 }
コード例 #7
0
        public void TestFieldCollection()
        {
            var tbl = new Table();

            tbl.Name = "table1";
            tbl.Fields.Add(new Field {
                Name = "myField", DataType = DbType.Byte
            });

            byte[] buf = MessageSharkSerializer.Serialize <Table>(tbl);

            var tbl2 = MessageSharkSerializer.Deserialize <Table>(buf);
        }
コード例 #8
0
 public void ShouldSerializeMessageWithObjectToMemoryStream()
 {
     using (var ms = new MemoryStream()) {
         object message = new Message()
         {
             ID = 10, CreateDate = DateTime.Now, Data = "This is a test", test = new Test()
             {
                 Int = 100, Str = "Testing", UUID = Guid.NewGuid()
             }
         };
         MessageSharkSerializer.Serialize(message, ms);
         var buffer = ms.ToArray();
     }
 }
コード例 #9
0
        public void ShouldDeserializeTOMessageFromMemoryStream()
        {
            byte[] buffer = null;
            using (var ms = new MemoryStream()) {
                var message = new Message()
                {
                    ID = 10, CreateDate = DateTime.Now, Data = "This is a test", test = new Test()
                    {
                        Int = 100, Str = "Testing", UUID = Guid.NewGuid()
                    }
                };
                MessageSharkSerializer.Serialize(message, ms);
                buffer = ms.ToArray();
            }

            using (var ms2 = new MemoryStream(buffer)) {
                ms2.Seek(0, SeekOrigin.Begin);
                var msg = MessageSharkSerializer.Deserialize(typeof(Message), ms2);
            }
        }
コード例 #10
0
        public void TestMultipleSerialization()
        {
            //MessageSharkSerializer.Build();
            var count = 10000;
            var tasks = new Task[count];

            //var threads = new ConcurrentBag<int>();
            for (var i = 0; i < count; i++)
            {
                tasks[i] = Task.Factory.StartNew(() =>
                {
                    var data = new Message()
                    {
                        ID = 10, CreateDate = DateTime.Now, Data = "This is a test"
                    };
                    var buffer = MessageSharkSerializer.Serialize(data);
                    //threads.Add(Thread.CurrentThread.ManagedThreadId);
                }).ContinueWith(t => Handle(t), TaskContinuationOptions.OnlyOnFaulted)
                           .ContinueWith(_ => {});
            }
            Task.WaitAll(tasks);
        }
コード例 #11
0
        public static void TestMultipleSerialization()
        {
            //MessageSharkSerializer.Build();
            var             count           = 10000;
            SmartThreadPool smartThreadPool = new SmartThreadPool();

            IWorkItemResult[] tasks = new IWorkItemResult[count];
            for (var i = 0; i < count; i++)
            {
                SmartThreadPool st = new SmartThreadPool();
                tasks[i] = st.QueueWorkItem(() =>
                {
                    var data = new Message()
                    {
                        ID = 10, CreateDate = DateTime.Now, Data = "This is a test"
                    };
                    var buffer666 = MessageSharkSerializer.Serialize(data);
                    //threads.Add(Thread.CurrentThread.ManagedThreadId);
                });
            }
            bool success = SmartThreadPool.WaitAll(tasks);

            //if (success)  result1 = (int)wir1.Result;
            smartThreadPool.Shutdown();

            //var tasks = new Task[count];
            ////var threads = new ConcurrentBag<int>();
            //for (var i = 0; i < count; i++)
            //{
            //    tasks[i] = Task.Factory.StartNew(() =>
            //    {
            //        var data = new Message() { ID = 10, CreateDate = DateTime.Now, Data = "This is a test" };
            //        var buffer = MessageSharkSerializer.Serialize(data);
            //        //threads.Add(Thread.CurrentThread.ManagedThreadId);
            //    }).ContinueWith(t => Handle(t), TaskContinuationOptions.OnlyOnFaulted)
            //    .ContinueWith(_ => { });
            //}
            //Task.WaitAll(tasks);
        }
コード例 #12
0
 public override void Serialize(object serializable, Stream outputStream)
 {
     MessageSharkSerializer.Serialize(serializable);
 }
コード例 #13
0
        public override object Deserialize(string serialized)
        {
            var b = Convert.FromBase64String(serialized);

            return(MessageSharkSerializer.Deserialize <object>(b));
        }
コード例 #14
0
        public override string Serialize(object serializable)
        {
            var buf = MessageSharkSerializer.Serialize(serializable);

            return(Convert.ToBase64String(buf));
        }
コード例 #15
0
 public override object Deserialize(Stream inputStream)
 {
     return(MessageSharkSerializer.Deserialize(_primaryType, inputStream));
 }
コード例 #16
0
 public override void Serialize(object serializable, Stream outputStream)
 {
     MessageSharkSerializer.Serialize(_primaryType, serializable, outputStream);
 }
コード例 #17
0
        static void Main(string[] args)
        {
            // ConcurrencyTest ===========================================================
            var tbl = new Table();

            tbl.Name = "table1";
            tbl.Fields.Add(new Field {
                Name = "myField", DataType = DbType.Byte
            });
            byte[] buf  = MessageSharkSerializer.Serialize <Table>(tbl);
            var    tbl2 = MessageSharkSerializer.Deserialize <Table>(buf);

            Console.WriteLine(tbl2.Name);

            Dictionary <string, string> whee = new Dictionary <string, string>();

            whee.Add("k", "v");
            var buffer = MessageSharkSerializer.Serialize(whee);
            Dictionary <string, string> dict = MessageSharkSerializer.Deserialize <Dictionary <string, string> >(buffer);

            Console.WriteLine(dict.Keys.ToArray()[0]);

            var message = new Message()
            {
                ID = 10, CreateDate = DateTime.Now, Data = "This is a test", test = new Test()
                {
                    Int = 100, Str = "Testing", UUID = Guid.NewGuid()
                }
            };

            message.Tests = new List <Test> {
                new Test()
                {
                    Int = 100, Str = "Testing", UUID = Guid.NewGuid()
                },
                new Test()
                {
                    Int = 100, Str = "Testing2", UUID = Guid.NewGuid()
                },
                new Test()
                {
                    Int = 100, Str = "Testing3", UUID = Guid.NewGuid()
                }
            };
            var buffer2  = MessageSharkSerializer.Serialize(message);
            var message2 = MessageSharkSerializer.Deserialize <Message>(buffer2);

            Console.WriteLine(message2.Data);

            ///// NonGenericSerializationTEst ===========================================================
            var message1 = new Message()
            {
                ID = 10, CreateDate = DateTime.Now, Data = "This is a test", test = new Test()
                {
                    Int = 100, Str = "Testing", UUID = Guid.NewGuid()
                }
            };
            var buffer1   = MessageSharkSerializer.Serialize(typeof(Message), message1);
            var messageD1 = MessageSharkSerializer.Deserialize(typeof(Message), buffer1);

            object message22 = new Message()
            {
                ID = 10, CreateDate = DateTime.Now, Data = "This is a test", test = new Test()
                {
                    Int = 100, Str = "Testing", UUID = Guid.NewGuid()
                }
            };
            var buffer22   = MessageSharkSerializer.Serialize(message22);
            var messageD22 = MessageSharkSerializer.Deserialize(typeof(Message), buffer22);


            //TestMultipleSerialization();

            ShouldDeserializeTOMessageFromMemoryStream();
            ShouldSerializeMessageToMemoryStream();
            ShouldSerializeMessageWithObjectToMemoryStream();


            Console.ReadLine();
        }