.Net Core Web 应用程序的自定义服务扩展未映射相同
Custom service extension for .Net Core web app not mapping the same
我正在尝试编写下面的 ServiceCollection 扩展。奇怪的是,当试图将 section
传递给 services.Configure()
方法时,它说它不能从 IConfigurationSection
转换为 Action<EsiConfig>
。
public static IServiceCollection AddEsi(this IServiceCollection services, IConfigurationSection section)
{
services.Configure<EsiConfig>(section);
services.AddScoped<IEsiClient, EsiClient>();
return services;
}
奇怪的是 Startup.cs 中的这段代码是相同的:
services.Configure<EsiConfig>(Configuration.GetSection("ESIConfig"));
services.AddScoped<IEsiClient, EsiClient>();
// Implementation of the ServiceCollection extension
services.AddEsi(Configuration.GetSection("ESIConfig"));
第一行工作得很好,当你将鼠标悬停在 GetSection 上时,它 returns 一个 ICollectionSection 被传递到接受相同的完全相同的方法 (Config()
) 属性 Action<EsiConfig>
.
类型
完全不确定我错过了什么,真的很困惑。
检查 services.Configure<EsiConfig>(Configuration.GetSection("ESIConfig"));
和 services.Configure<EsiConfig>(section);
的参考,并确保您使用了 Microsoft.Extensions.Options.ConfigurationExtensions
。
这是一个工作项目ConfigurationPro
我正在尝试编写下面的 ServiceCollection 扩展。奇怪的是,当试图将 section
传递给 services.Configure()
方法时,它说它不能从 IConfigurationSection
转换为 Action<EsiConfig>
。
public static IServiceCollection AddEsi(this IServiceCollection services, IConfigurationSection section)
{
services.Configure<EsiConfig>(section);
services.AddScoped<IEsiClient, EsiClient>();
return services;
}
奇怪的是 Startup.cs 中的这段代码是相同的:
services.Configure<EsiConfig>(Configuration.GetSection("ESIConfig"));
services.AddScoped<IEsiClient, EsiClient>();
// Implementation of the ServiceCollection extension
services.AddEsi(Configuration.GetSection("ESIConfig"));
第一行工作得很好,当你将鼠标悬停在 GetSection 上时,它 returns 一个 ICollectionSection 被传递到接受相同的完全相同的方法 (Config()
) 属性 Action<EsiConfig>
.
完全不确定我错过了什么,真的很困惑。
检查 services.Configure<EsiConfig>(Configuration.GetSection("ESIConfig"));
和 services.Configure<EsiConfig>(section);
的参考,并确保您使用了 Microsoft.Extensions.Options.ConfigurationExtensions
。
这是一个工作项目ConfigurationPro