Inject App Settings using Windsor

后端 未结 2 1024
情深已故
情深已故 2020-12-31 07:52

How can I inject the value of an appSettings entry (from app.config or web.config) into a service using the Windsor container? If I wanted to inject the value of a Windsor p

相关标签:
2条回答
  • 2020-12-31 08:28

    I came up with a solution for this eventually based on hints from various sources on the web. The end result though involved pretty much copying three classes from Windsor verbatim and modifying them just a little bit. The end result is up on codeplex for your enjoyment.

    http://windsorappcfgprops.codeplex.com/

    I originally wrote this code quite some time ago so it's based on Windsor 1.0.3 - yes, it took me that long to get around to publishing the result!

    The code allows you to have this in your app.config (or web.config, obviously):

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <appSettings>
        <add key="theAnswer" value="42"/>
      </appSettings>
    </configuration>
    

    ...and access it from your Windsor XML config file like this:

    <?xml version="1.0" encoding="utf-8" ?>
    <castle>
      <components>
        <component
          id="answerProvider"
          service="Acme.IAnswerProvider, Acme"
          type="Acme.AnswerProvider, Acme"
          >
          <parameters>
            <theAnswer>#{AppSetting.theAnswer}</theAnswer>
          </parameters>
        </component>
      </components>
    </castle>
    

    There's a working example in the solution.

    0 讨论(0)
  • 2020-12-31 08:35

    I wrote a post about a similar case a couple of months ago. It uses a SubDependencyResolver to inject the appropriate parameters. In your case, you can just change DynamicConfigurationSettings for ConfigurationManager.

    0 讨论(0)
提交回复
热议问题