servicestack-text,C#,Asp.net,Asp.net Web Api,Asp.net Core,servicestack Text" /> servicestack-text,C#,Asp.net,Asp.net Web Api,Asp.net Core,servicestack Text" />

C# 如何在web api项目中使用ServiceStack.Text

C# 如何在web api项目中使用ServiceStack.Text,c#,asp.net,asp.net-web-api,asp.net-core,servicestack-text,C#,Asp.net,Asp.net Web Api,Asp.net Core,servicestack Text,我是ServiceStack.Text的新手,发现如何在我的项目中使用它很困难。我安装了nuget,但如何将其添加到formatters集合中,使其默认使用该集合 我正在使用Asp.Net核心windows项目 我不知道如何使用此DLL我了解到它需要一些自定义格式化程序,因此我使用以下方法添加了它: services.AddMvc().AddMvcOptions(options => { options.InputFormatters.Clear();

我是ServiceStack.Text的新手,发现如何在我的项目中使用它很困难。我安装了nuget,但如何将其添加到formatters集合中,使其默认使用该集合

我正在使用Asp.Net核心windows项目

我不知道如何使用此DLL我了解到它需要一些自定义格式化程序,因此我使用以下方法添加了它:

services.AddMvc().AddMvcOptions(options => {

                options.InputFormatters.Clear();
                options.InputFormatters.Add(new ServiceStackTextFormatter());

            });
这是实际的课程:

 public class ServiceStackTextFormatter : MediaTypeFormatter
    {
        //Uses ISO8601 date by default
        private DateHandler _dateHandler = DateHandler.ISO8601;

        public ServiceStackTextFormatter(DateHandler dateHandler)
            : this()
        {
            _dateHandler = dateHandler;
        }

        public ServiceStackTextFormatter()
        {
            SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));

            SupportedEncodings.Add(new UTF8Encoding(encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true));

            //TODO: Add XHR Header mapping. Will add this after a discussion with aspnetwebstack team: See: http://aspnetwebstack.codeplex.com/discussions/350758
        }

        public override Task<object> ReadFromStreamAsync(Type type, System.IO.Stream stream, HttpContent content, IFormatterLogger formatterLogger)
        {
            return Task.Factory.StartNew(() =>
            {
                using (var scope = JsConfig.BeginScope())
                {
                    scope.DateHandler = _dateHandler;
                    JsConfig.DateHandler = _dateHandler;
                    var result = JsonSerializer.DeserializeFromStream(type, stream);
                    return result;
                }
            });
        }

        public override Task WriteToStreamAsync(Type type, object value, System.IO.Stream stream, HttpContent content, TransportContext transportContext)
        {
            return Task.Factory.StartNew(() =>
            {
                using (var scope = JsConfig.BeginScope())
                {
                    scope.DateHandler = _dateHandler;
                    JsonSerializer.SerializeToStream(value, type, stream);
                }
            });
        }

        public override bool CanReadType(Type type)
        {
            if (type == null)
            {
                throw new ArgumentNullException("type");
            }

            return true;
        }

        public override bool CanWriteType(Type type)
        {
            if (type == null)
            {
                throw new ArgumentNullException("type");
            }

            return true;
        }
    }
我有点沮丧,因为任何地方都没有入门指南。默认情况下,我如何告诉.Net使用此DLL

感谢您的帮助

cannot convert from 'Helpers.ServiceStackTextFormatter' to 'Microsoft.AspNetCore.Mvc.Formatters.IInputFormatter'