我想调用一个静态类,我需要在其中传递 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);
}
}