예제 #1
0
        public NETSerializerTest()
        {
            var type  = typeof(INetMessage);
            var types = type.Assembly.GetTypes()
                        .Where(t => !t.IsInterface && t.IsClass && !t.IsAbstract && type.IsAssignableFrom(t))
                        .ToArray();

            NetSerializer.Serializer instance = new NetSerializer.Serializer(types);
            NETSerializer            ns       = new NETSerializer(instance);

            SerializerFactory.AddSerializer(new NETSerializer(instance), "NET");
        }
예제 #2
0
        public static void Main(string[] args)
        {
#if NETFULL
            NetSerializer.Serializer instance = new NetSerializer.Serializer(new[] { typeof(Foo), typeof(SerializerWrapper) });
            NETSerializer            ns       = new NETSerializer(instance);
            SerializerFactory.AddSerializer(new NETSerializer(instance), "NET");
#endif
            SerializerFactory.AddSerializer <JilSerializer>("jil");
            SerializerFactory.AddSerializer <JsonNetSerializer>("jsonNet");
            SerializerFactory.AddSerializer <ProtoBufSerializer>("ProtoBuf");


            TestExcute.Excute(typeof(Program));
        }
예제 #3
0
        public void Setup()
        {
            var jsonNetOptions = new JsonSerializerSettings
            {
                Formatting = Formatting.None,
                Converters = new JsonConverter[] {
                    new IsoDateTimeConverter {
                        DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss"
                    },
                    new LongToStringConverter(),
                },

                ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
                NullValueHandling     = NullValueHandling.Ignore
            };

            var serializeOptions = new JsonSerializerOptions
            {
                WriteIndented               = false,
                IgnoreNullValues            = false,
                PropertyNameCaseInsensitive = true,
                Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping
            };

            serializeOptions.Converters.Add(new ImplicitInt64Converter());
            serializeOptions.Converters.Add(new ImplicitUInt64Converter());
            serializeOptions.Converters.Add(new ImplicitDateTimeConverter());
            serializeOptions.Converters.Add(new ImplicitDateTimeOffsetConverter());

            var deserializeOptions = new JsonSerializerOptions
            {
                WriteIndented               = false,
                IgnoreNullValues            = true,
                PropertyNameCaseInsensitive = true,
                Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping
            };

            deserializeOptions.Converters.Add(new ImplicitInt16Converter());
            deserializeOptions.Converters.Add(new ImplicitUInt16Converter());
            deserializeOptions.Converters.Add(new ImplicitInt32Converter());
            deserializeOptions.Converters.Add(new ImplicitUInt32Converter());
            deserializeOptions.Converters.Add(new ImplicitInt64Converter());
            deserializeOptions.Converters.Add(new ImplicitUInt64Converter());
            deserializeOptions.Converters.Add(new ImplicitDecimalConverter());
            deserializeOptions.Converters.Add(new ImplicitDoubleConverter());
            deserializeOptions.Converters.Add(new ImplicitSingleConverter());
            deserializeOptions.Converters.Add(new ImplicitByteConverter());
            deserializeOptions.Converters.Add(new ImplicitSByteConverter());
            deserializeOptions.Converters.Add(new ImplicitDateTimeConverter());
            deserializeOptions.Converters.Add(new ImplicitDateTimeOffsetConverter());

            serializeToStringObject = new
            {
                int16    = 111.ToString(),
                uint16   = ushort.MaxValue.ToString(),
                int32    = int.MaxValue.ToString(),
                uint32   = uint.MaxValue.ToString(),
                int32N   = "".ToString(),
                int64    = 12321.ToString(),
                uint64   = ulong.MaxValue.ToString(),
                boolean  = true,
                decimalV = decimal.MaxValue.ToString(),
                doubleV  = "1.123445767",
                floatV   = "1.1111",
                byteV    = byte.MaxValue.ToString(),
                sbyteV   = sbyte.MaxValue.ToString(),
                charV    = 'c',
                date     = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                date1    = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                arr      = new string[] { "a", "b" },
                TestEnum = TestEnum.Approved
            };

            jsonFromString = JsonConvert.SerializeObject(serializeToStringObject, jsonNetOptions);

            serializeToStringClass = (TestClass)JsonConvert.DeserializeObject(jsonFromString, typeof(TestClass), jsonNetOptions);

            jsonNetSerializer  = new JsonNetSerializer(jsonNetOptions);
            textJsonSerializer = new TextJsonSerializer(serializeOptions, deserializeOptions);
            jilSerializer      = new JilSerializer();

            dataContractSerializer = new DataContractSerializer();
#if !NET5_0
            binarySerializer = new BinarySerializer();
#endif
            protoBufSerializer = new ProtoBufSerializer();

            NetSerializer.Serializer instance = new NetSerializer.Serializer(new[] { typeof(TestClass) });
            netSerializer = new NETSerializer(instance);

            dataContractFromString = dataContractSerializer.SerializeToString(serializeToStringClass);
#if !NET5_0
            binaryFromString = binarySerializer.SerializeToString(serializeToStringClass);
#endif
            protoBufFromString      = protoBufSerializer.SerializeToString(serializeToStringClass);
            netSerializerFromString = netSerializer.SerializeToString(serializeToStringClass);

            jilFromString = jilSerializer.SerializeToString(serializeToStringClass);
        }