2011-04-06 62 views
2

我正在研究一個ASP.NET MVC應用程序,我想根據web.config中的設置實例化一個類。如何基於Castle Windsor的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; 

我怎麼能解決這個問題?提前致謝。

回答

4

只是爲了完整起見,整個代碼看起來是這樣的:

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

編碼愉快。

+2

爲什麼不'var gameRepository = container.Resolve ();'?更簡單,更好... ' – 2011-04-07 10:23:12

3
container.Install(Configuration.FromAppConfig()); 
+0

感謝@Krzysztof,它現在可以工作。 – Zoliqa 2011-04-07 08:00:42

相關問題