pon*_*lan 10 c# asp.net-core identityserver4
我正在关注API 的 IdentityServer4 实现的下一个教程,但我无法将该方法调用AddJsonFormatters()
到services.AddMvcCore()
. 我目前正在从 ASP.NET Core 3.0.0 中的空模板配置 API
我添加了 NuGet 包但Microsoft.AspNetCore.Mvc.Formatters.Json
没有结果。另外,据我所知,使用AddMvc()
的替代AddMvcCore()
将是局部的解决方案,但我不能用AddAuthorization()
在AddMvc()
//code extracted from the link
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvcCore()
.AddAuthorization()
.AddJsonFormatters();
}
}
Run Code Online (Sandbox Code Playgroud)
这是我在上面看到的错误消息:
“IMvcCoreBuilder”不包含“AddJsonFormatters”的定义,并且找不到接受“IMVCoreBuilder”类型的第一个参数的可访问扩展方法“AddJsonFormatters”(您使用的是缺少的指令还是程序集引用?)
这是方法吗?我应该发送 MVCCoreBuilder 吗?我怎么做?MvcJsonMvcCoreBuilderExtensions.AddJsonFormatters 方法
当你打电话时,services.AddMvc()
你会得到一个IMvcBuilder
.
如果你想添加更多的输出或输入格式化程序,它IMvcBuilder
有一个你可以调用的扩展方法,AddMvcOptions
你有一个XmlDataContractSerializerOutputFormatter
被添加的例子
mvcBuilder.AddMvcOptions(options =>
{
options.OutputFormatters.Add(new XmlDataContractSerializerOutputFormatter());
options.InputFormatters.Add(new XmlDataContractSerializerInputFormatter(options));
Run Code Online (Sandbox Code Playgroud)
Mvc 已经有一个JsonOutputFormatter
, 所以在里面AddMvcOptions
你可以得到它,如果你需要它也可以添加你自己的自定义媒体类型。
var jsonOutputFormatter = options.OutputFormatters.OfType<JsonOutputFormatter>().FirstOrDefault();
if (jsonOutputFormatter != null)
{
jsonOutputFormatter.SupportedMediaTypes.Add(HttpMediaTypes.Vnd+json.all);
jsonOutputFormatter.SupportedMediaTypes.Add(HttpMediaTypes.ApplicationOctetStream);
}
Run Code Online (Sandbox Code Playgroud)