Я хотел вызвать один статический класс, в котором мне нужно передать 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);
}
}