如何使用Castle Windsor基于web.config文件实例化一个类?

时间:2011-04-06 11:51:14

标签: asp.net-mvc web-config castle-windsor

我正在开发一个ASP.NET MVC应用程序,我想根据web.config中编写的设置实例化一个类。

<configSections>
    <section name="castle"
        type="Castle.Windsor.Configuration.AppDomain.CastleSectionHandler, Castle.Windsor" />
</configSections>

<castle>
    <components>
        <component
            id="SqlRepository"
            service="GomokuGameAppDomain.IGameRepository, GomokuGameAppDomain"
            type="GomokuGameAppDomain.SqlGameRepository, GomokuGameAppDomain"
            lifestyle="PerWebRequest">
            <parameters>
                 <connectionString>Data Source=ZOLIQ-PC\SQLEXPRESS;Initial Catalog=Gomoku;Integrated Security=True</connectionString>
            </parameters>
    </component>
</castle>
...

我想使用这样的东西:

var container =
    new WindsorContainer (new XmlInterpreter (new ConfigResource ("castle")));

gameRepository = container.Resolve (typeof (IGameRepository)) as IGameRepository;

我怎么解决这个问题?提前谢谢。

2 个答案:

答案 0 :(得分:4)

为了完整起见,整个代码看起来像这样:

var container = new WindsorContainer();
container.Install(Castle.Windsor.Installer.Configuration.FromAppConfig());
var gameRepository = container.Resolve<IGameRepository>();

快乐的编码。

答案 1 :(得分:3)

container.Install(Configuration.FromAppConfig());