1

我想调用一个静态类,我需要在其中传递 IConfiguration,它将在启动时调用

静态类留在基础设施层我不想在主应用程序中添加引用

启动.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();
        });
    }
}

我不想在主调用应用程序(在本例中为 Web 应用程序)中添加对基础设施层的引用

我需要传递留在基础设施层中的 IConfiguration 对象 SomeRegistry 类在下面的代码中,我总是将配置设置为 null

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);
    }
}
4

0 回答 0