2

I wanted to call one static class in which I need to pass IConfiguration, which will get called on startup

static class stay in Infrastructure layer I don't want to add a reference in the main application

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

I don't want to add a reference to Infrastructure Layer into the main calling application (in this case its Web Application)

I need to pass IConfiguration object SomeRegistry class which stay in the Infrastructure Layer In the following code, I am always getting configuration as null

SomeStaticRepository.Initialize is a static class in which I am assigning values and in my requirement, I am going to call directly a static class.

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);
    }
}
Sushant
  • 375
  • 1
  • 2
  • 5

0 Answers0