public void Test_Deserialize_BinaryFormatter()
        {
            string base64 = "AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uTmV0LklQTmV0d29yaywgVmVyc2lvbj0yLjIuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTcxNzM0M2NjMmMyNWVkY2YFAQAAABRTeXN0ZW0uTmV0LklQTmV0d29yawEAAAAJSVBOZXR3b3JrAQIAAAAGAwAAAAoxMC4wLjAuMC84Cw==";
            var    bytes  = Convert.FromBase64String(base64);
            var    mem    = new MemoryStream(bytes);

            BinaryFormatter serializer = new BinaryFormatter();
            var             result     = serializer.Deserialize(mem);

            var expected = IPNetwork.Parse("10.0.0.1/8");

            Assert.AreEqual(expected, result);
        }
        public void Test_Serialize_Deserialize_BinaryFormatter()
        {
            var ipnetwork = IPNetwork.Parse("10.0.0.1/8");

            BinaryFormatter serializer = new BinaryFormatter();
            var             mem        = new MemoryStream();

            serializer.Serialize(mem, ipnetwork);

            mem.Position = 0;
            var ipnetwork2 = serializer.Deserialize(mem);

            Assert.AreEqual(ipnetwork, ipnetwork2);
        }
        [Ignore] //("Assembly version is writen in binary serilaization.")
        public void Test_Serialize_BinaryFormatter()
        {
            var ipnetwork = IPNetwork.Parse("10.0.0.1/8");

            BinaryFormatter serializer = new BinaryFormatter();
            var             mem        = new MemoryStream();

            serializer.Serialize(mem, ipnetwork);
            var result = Convert.ToBase64String(mem.ToArray());

            string expected = "AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uTmV0LklQTmV0d29yaywgVmVyc2lvbj0yLjIuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTcxNzM0M2NjMmMyNWVkY2YFAQAAABRTeXN0ZW0uTmV0LklQTmV0d29yawEAAAAJSVBOZXR3b3JrAQIAAAAGAwAAAAoxMC4wLjAuMC84Cw==";

            Assert.AreEqual(expected, result);
        }
        public void Test_1_000_000_Serialize_BinaryFormatter()
        {
            var ipnetwork = IPNetwork.Parse("10.0.0.1/8");

            var serializer = new BinaryFormatter();
            var mem        = new MemoryStream();

            for (int i = 0; i < 1000000; i++)
            {
                serializer.Serialize(mem, ipnetwork);
                mem.SetLength(0);
            }

            // 5.13 seconds(Ad hoc).
        }