예제 #1
0
        public static void ConfigureMvc(
            MvcOptions options,
            JsonSerializerSettings serializerSettings,
            ILoggerFactory loggerFactory,
            ArrayPool <char> charPool,
            ObjectPoolProvider objectPoolProvider,
            MvcJsonOptions jsonOptions = null)
        {
            serializerSettings.Formatting = Formatting.Indented;

            serializerSettings.Converters.Add(new DateTimeOffsetFormatJsonConverter());
            serializerSettings.DateParseHandling = DateParseHandling.None;

            options.OutputFormatters.Clear();

            var jsonOutputFormatter =
#if NETCOREAPP3_0 || NETCOREAPP3_1 || NET5_0
                new NewtonsoftJsonOutputFormatter(serializerSettings, charPool, options);
#elif NETSTANDARD2_0 || NETFRAMEWORK
                new JsonOutputFormatter(serializerSettings, charPool);
#else
#error unknown target framework
#endif

            options.OutputFormatters.Add(jsonOutputFormatter);

            options.InputFormatters.Clear();
            var jsonInputLogger = loggerFactory.CreateLogger <HypermediaApiJsonInputFormatter>();
            options.InputFormatters.Add(new HypermediaApiJsonInputFormatter(
                                            jsonInputLogger,
                                            serializerSettings,
                                            charPool,
                                            objectPoolProvider,
                                            options,
                                            jsonOptions));
        }
예제 #2
0
        public HypermediaApiJsonInputFormatter(ILogger logger, JsonSerializerSettings serializerSettings, ArrayPool <char> charPool, ObjectPoolProvider objectPoolProvider, MvcOptions options, MvcJsonOptions jsonOptions)
#if NETFRAMEWORK
            : base(logger, serializerSettings, charPool, objectPoolProvider)
#else
            : base(logger, serializerSettings, charPool, objectPoolProvider, options, jsonOptions)