title: How can I access IOptions (or any settings) from other tiers of my .NET Core app?
body: <p>I have successfully tried and used IOptions from within a .NET Core Web API Controller.</p>
  
  <p>For example, this works for me:</p>
  
  <pre><code>public MyController(IOptions&lt;MySettings&gt; options)
  {
      // I can access these _options from any method in this Controller.
      _options = options.Value;
  }
  </code></pre>
  
  <p>However, I need to access my IOptions from other tiers in my app.</p>
  
  <p>For instance, perhaps I have this...</p>
  
  <p>Controller --calls--> Business Layer --calls--> Data Access Layer</p>
  
  <p>I really don't want to pass an IOptions parameter down the call chain. I've put MySettings in its own assembly to give all layers access to it.</p>
  
  <ul>
  <li>Am I approaching this wrong?  </li>
  <li>What is the correct way to do this? </li>
  <li>Is there a way to have IOptions automatically injected into the constructor like the Controller? (If so, how do I instantiate each class where I need this?)</li>
  </ul>
  
  <p>Edit:</p>
  
  <ul>
  <li>I'm not really concerned about dependencies, per-se, but the flow of info through a million "linked" tiers.</li>
  </ul>
  
  <p>Controller(connection string from config) --calls--> Business Layer(connection string) --calls--> Data Access Layer(connection string)</p>
  
  <p>I just used Connection String as an example.</p>
  
  <p>Thanks.</p>