J'utilise netstandard2.1
Bibliothèque dans mon netcoreapp3.0
application Web. Lorsque vous ajoutez mon service en Startup
, je reçois l'erreur ci-dessous:
'Impossible de charger le type "Microsoft.aspnetcore.mvc.mvcjsonoptions" de Assembly' Microsoft.aspnetcore.mvc.formatters.json, version = 3.0.0.0
J'utilise également certaines fonctionnalités de Microsoft.AspNetCore.Mvc
2.2.0 Package dans ma bibliothèque de classe.
Voici ma bibliothèque .csproj
,
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
</ItemGroup>
</Project>
Voici mon ServiceExtensions
classe de ma bibliothèque,
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;
}
}
Voici mon ConfigureLibraryOptions
classe,
public class ConfigureLibraryOptions : IConfigureOptions<MvcOptions>
{
public void Configure(MvcOptions options)
{
options.ModelBinderProviders.Insert(0, new CustomBinderProvider());
}
}
Voici le ConfigureServices
de Startup
,
services.AddControllersWithViews().AddMyLibrary();
S'il vous plaît aider pourquoi je reçois cette erreur et aide à la façon de résoudre ce problème?
Lorsque vous configez "Swashbuckle.aspnetcore", nécessaire pour configurer Apikeyscheme devenir OpenApisecurityScheme, il change le schéma de
c.AddSecurityDefinition("Bearer", new ApiKeyScheme { In = "header", Description =
"Please enter JWT with Bearer into field", Name = "Authorization", Type = "apiKey"
});
c.AddSecurityRequirement(new Dictionary<string, IEnumerable<string>> {
{ "Bearer", Enumerable.Empty<string>() }, });
À
c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
Description =
"JWT Authorization header using the Bearer scheme. \r\n\r\n Enter 'Bearer' [space] and then your token in the text input below.\r\n\r\nExample: \"Bearer 12345abcdef\"",
Name = "Authorization",
In = ParameterLocation.Header,
Type = SecuritySchemeType.ApiKey,
Scheme = "Bearer"
});
c.AddSecurityRequirement(new OpenApiSecurityRequirement()
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type = ReferenceType.SecurityScheme,
Id = "Bearer"
},
Scheme = "oauth2",
Name = "Bearer",
In = ParameterLocation.Header,
},
new List<string>()
}
});