Настраиваемое расширение службы для веб-приложения .Net Core, которое не сопоставляется - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь написать расширение 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, он возвращает ICollectionSection, который передается в тот же точный метод (Config()), который принимаетточно такой же тип свойства Action<EsiConfig>.

Не уверен, что мне вообще не хватает, и я действительно сбит с толку.

1 Ответ

0 голосов
/ 31 января 2019

Проверьте ссылку для services.Configure<EsiConfig>(Configuration.GetSection("ESIConfig")); и services.Configure<EsiConfig>(section); и убедитесь, что вы использовали Microsoft.Extensions.Options.ConfigurationExtensions.

Вот рабочий проект КонфигурацияPro

...