ASP.NET 核心 - 'Configuration.GetSection(string)' Swagger 实施中的错误
ASP.NET Core - 'Configuration.GetSection(string)' Error in Swagger Implementation
在我的 ASP.NET Core Web API-5.0 中,我正在实施 Swagger。我有这个:
using System.Configuration;
public static class SwaggerExtension
{
public static IApplicationBuilder UseVersionedSwagger(this IApplicationBuilder app, IApiVersionDescriptionProvider provider)
{
// Enable middleware to serve generated Swagger as a JSON endpoint.
app.UseSwagger();
string virDir = Configuration.GetSection("VirtualDirectory").Value;
app.UseSwaggerUI(
options =>
{
// build a swagger endpoint for each discovered API version
foreach (var description in provider.ApiVersionDescriptions)
{
options.SwaggerEndpoint(virDir + "/swagger/{description.GroupName}/swagger.json", description.GroupName.ToUpperInvariant());
}
});
return app;
}
}
我收到这个错误:
An object reference is required for the non-static field, method, or property
'Configuration.GetSection(string)'
并突出显示此行:
Configuration.GetSection
VirtualDirectory 在 appsettings.json
中被引用
如何解决这个问题?
谢谢
方法Configuration.GetSection return IConfigurationSection 类型的对象如果我没记错的话。而你试图将它存储在一个字符串对象中,这是不可能的。
尝试这样做:
var virDir = Configuration.GetSection("VirtualDirectory").Value;
如果有效,您可以在将鼠标悬停在“GetSection”方法上检查 return 确切地确定了哪个对象类型,然后将“var”更改为正确的类型:
hover a method for check the returned type
此致。
变化:
string virDir = Configuration.GetSection("VirtualDirectory").Value;
类似于:
string virDir = app.ApplicationServices.GetRequiredService<IConfiguration>().GetSection("VirtualDirectory").Value;
Configuration
没有任何意义,这就是您收到错误的原因。您需要传递一个 IConfiguration 实例,或者像我一样从 servicecontainer 中获取它。
您可能还想添加 exta null/empty 字符串检查以确保您的配置正确。
在我的 ASP.NET Core Web API-5.0 中,我正在实施 Swagger。我有这个:
using System.Configuration;
public static class SwaggerExtension
{
public static IApplicationBuilder UseVersionedSwagger(this IApplicationBuilder app, IApiVersionDescriptionProvider provider)
{
// Enable middleware to serve generated Swagger as a JSON endpoint.
app.UseSwagger();
string virDir = Configuration.GetSection("VirtualDirectory").Value;
app.UseSwaggerUI(
options =>
{
// build a swagger endpoint for each discovered API version
foreach (var description in provider.ApiVersionDescriptions)
{
options.SwaggerEndpoint(virDir + "/swagger/{description.GroupName}/swagger.json", description.GroupName.ToUpperInvariant());
}
});
return app;
}
}
我收到这个错误:
An object reference is required for the non-static field, method, or property 'Configuration.GetSection(string)'
并突出显示此行:
Configuration.GetSection
VirtualDirectory 在 appsettings.json
中被引用如何解决这个问题?
谢谢
方法Configuration.GetSection return IConfigurationSection 类型的对象如果我没记错的话。而你试图将它存储在一个字符串对象中,这是不可能的。
尝试这样做:
var virDir = Configuration.GetSection("VirtualDirectory").Value;
如果有效,您可以在将鼠标悬停在“GetSection”方法上检查 return 确切地确定了哪个对象类型,然后将“var”更改为正确的类型: hover a method for check the returned type
此致。
变化:
string virDir = Configuration.GetSection("VirtualDirectory").Value;
类似于:
string virDir = app.ApplicationServices.GetRequiredService<IConfiguration>().GetSection("VirtualDirectory").Value;
Configuration
没有任何意义,这就是您收到错误的原因。您需要传递一个 IConfiguration 实例,或者像我一样从 servicecontainer 中获取它。
您可能还想添加 exta null/empty 字符串检查以确保您的配置正确。