C# 如何在web api项目中使用ServiceStack.Text
我是ServiceStack.Text的新手,发现如何在我的项目中使用它很困难。我安装了nuget,但如何将其添加到formatters集合中,使其默认使用该集合 我正在使用Asp.Net核心windows项目 我不知道如何使用此DLL我了解到它需要一些自定义格式化程序,因此我使用以下方法添加了它: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();
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'