.net core, n-layered app, should services layer have dependency on Microsoft.Extensions.Options.dll

Viewed 541

Straightforward question is: are Microsoft.Extensions.Options.IOptions meant to be used only within the context of umbrella app (web app in this case) or in class libraries also?

Example:

In a n-layered, asp.net core app we have services layer that is dependant on some settings coming from appsettings.json file.

What we first started with is something along these lines in Startup.cs:

  services.Configure<Services.Options.XOptions>(options =>
  {
    options.OptionProperty1 = Configuration["OptionXSection:OptionXProperty"];
  });

And then in service constructor:

ServiceConstructor(IOptions<XOptions> xOptions){}

But that assumes that in our Service layer we have dependecy on Microsoft.Extensions.Options.

We're not sure if this is recomended way or is there some better practice?

It just feels a bit awkward our services class library should be aware of DI container implementation.

1 Answers
Related