Как мы вводим зависимость при регистрации ServiceRegistry

Я хотел вызвать один статический класс, в котором мне нужно передать IConfiguration, который будет вызываться при запуске

статический класс остается в слое инфраструктуры. Я не хочу добавлять ссылку в основное приложение.

Startup.cs

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    public void ConfigureContainer(ServiceRegistry services)
    {
        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
        services.Scan(scan =>
        {
            scan.TheCallingAssembly();
            scan.WithDefaultConventions();
            scan.SingleImplementationsOfInterface();
            scan.LookForRegistries();
        });
    }
}

Я не хочу добавлять ссылку на слой инфраструктуры в основное вызывающее приложение (в данном случае это веб-приложение)

Мне нужно передать объект IConfiguration, класс SomeRegistry, который остается на уровне инфраструктуры. В следующем коде я всегда получаю конфигурацию как ноль

SomeStaticRepository.Initialize - это статический класс, в котором я присваиваю значения, и в моем требовании я собираюсь напрямую вызывать статический класс.

SomeRegistry.cs

public class SomeRegistry : ServiceRegistry
{
    public SomeRegistry()
    {
        //.......Repo Layers DI registration
        Container container = new Container(this);
        IConfiguration configuration = container.TryGetInstance(); // I am always getting "null"
        SomeStaticRepository.Initialize(configuration);
    }
}

0 ответов

Другие вопросы по тегам