【发布时间】:2010-03-04 09:33:58
【问题描述】:
我想将“策略模式”用于 2 个 Web 项目、我的配置文件(并且仅用于配置文件):
<?xml version="1.0"?>
<configuration>
<components>
<!-- container ORM -->
<component id="DALReseauContainer" type="ReseauRules.Db.BLL.DbReseauWorkingContextContainer, ReseauRules" service="ReseauConnector.BLL.IReseauWorkingContextContainer, ReseauConnector">
</component>
<!-- remote controler (Web Service) -->
<component id="remoteReseauManager"
type="ReseauConnector.BLL.RemoteReseauManager, ReseauConnector"
service="ReseauConnector.BLL.IReseauManager, ReseauConnector"
lifestyle="transient">
</component>
<!-- local controler -->
<component id="localReseauManager"
type="ReseauRules.Db.BLL.DbReseauManager, ReseauRules"
service="ReseauConnector.BLL.IReseauManager, ReseauConnector"
lifestyle="transient">
<parameters>
<container>${DALReseauContainer}</container>
</parameters>
</component>
</components>
</configuration>
项目A使用“remoteReseauManager”,只引用ReseauConnector,可以调用
container.Resolve<IReseauManager>("remoteReseauManager");
项目B使用“localReseauManager”并引用ReseauConnector AND ReseauRules,可以调用
container.Resolve<IReseauManager>("localReseauManager");
当我打电话时
IWindsorContainer container = new WindsorContainer(new Castle.Windsor.Configuration.Interpreters.XmlInterpreter());
Windsor 尝试解析每个组件,并且在项目 A 中,ReseauRules 不存在,Windsor 无法加载 ReseauRules(如预期的那样)。
如何告诉 Windsor 不要在此上下文中加载组件(配置文件)?
非常感谢。
【问题讨论】:
标签: xml configuration castle-windsor ioc-container lazy-loading