gpt4 book ai didi

c# - '无法从程序集加载类型 'Microsoft.AspNetCore.Mvc.MvcJsonOptions' 'Microsoft.AspNetCore.Mvc.Formatters.Json,版本=3.0.0.0

转载 作者:行者123 更新时间:2023-12-01 23:13:40 30 4
gpt4 key购买 nike

我在 netcoreapp3.0 Web 应用程序中使用 netstandard2.1 库。在 Startup 中添加我的服务时,出现以下错误:

'Could not load type 'Microsoft.AspNetCore.Mvc.MvcJsonOptions' from assembly 'Microsoft.AspNetCore.Mvc.Formatters.Json, Version=3.0.0.0

我还在我的类库中使用了 Microsoft.AspNetCore.Mvc 2.2.0 包中的一些功能。

这是我的库.csproj

<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
</ItemGroup>

</Project>

这是我的库中的 ServiceExtensions 类,

public static class ServiceExtensions
{
public static IMvcBuilder AddMyLibrary(this IMvcBuilder builder)
{
builder.Services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();
builder.AddJsonOptions(options =>
{
options.SerializerSettings.ContractResolver = new DefaultContractResolver();
});
builder.Services.ConfigureOptions<ConfigureLibraryOptions>();

return builder;
}
}

这是我的 ConfigureLibraryOptions 类,

public class ConfigureLibraryOptions : IConfigureOptions<MvcOptions>
{
public void Configure(MvcOptions options)
{
options.ModelBinderProviders.Insert(0, new CustomBinderProvider());
}
}

这是来自 StartupConfigureServices

services.AddControllersWithViews().AddMyLibrary();

请帮助我了解为什么会出现此错误并协助解决此问题?

最佳答案

我不确定这是否解决了OP的问题,但是当您在.Net Core 3中使用Swashbuckle 4时也会出现此错误。解决方案是使用Swashbuckle 5。(使用命令install-package Swashbuckle.AspNetCore)在.csproj中

<PackageReference Include="Swashbuckle.AspNetCore" Version="5.0.0" />

然后您需要在 Startup.cs 中对其进行升级。通常,这涉及到不使用 OpenApi 编译的类的前缀,例如

options.SwaggerDoc("v1"新信息...

变成了

options.SwaggerDoc("v1", OpenApiInfo

此外,OpenApiSecurityScheme 变为 ApiKeyScheme

另请参阅 https://github.com/domaindrivendev/Swashbuckle.AspNetCore 处的文档

关于c# - '无法从程序集加载类型 'Microsoft.AspNetCore.Mvc.MvcJsonOptions' 'Microsoft.AspNetCore.Mvc.Formatters.Json,版本=3.0.0.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58362757/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com