警告:我是温莎的新手。
我有一个有多个项目的解决方案。我有一个包含所有接口(名为“Framework”)的项目和其他具有这些接口的具体实现的项目。我试图让温莎绑定这些并解决我的界面:
其他一个项目称为“Orders”,它有一个Order
类,它实现IOrder
,它在框架项目中定义。这两个项目之间有一个参考,它确实可以编译。
我有另一个项目,它具有我为其创建安装程序的实际windsor调用:
public class CoreInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(
AllTypes.FromAssemblyNamed("Framework"),
AllTypes.FromAssemblyNamed("Orders")
);
}
}
我将windsor容器实例化为:
new WindsorContainer().Install(new CoreInstaller());
当我尝试解析IOrder
时,它失败了:
Castle.MicroKernel.ComponentNotFoundException:找不到支持服务Framework.IOrder的组件
我还尝试在安装函数中翻转项目以首先加载Orders
但我得到同样的错误。
任何可以帮助我的温莎用户?
答案 0 :(得分:1)
你已经有效地告诉温莎获得所有类型,但你还没有告诉它如何处理它们。如果您不想过滤要注册的类型以及要注册的接口,则需要在注册时添加Pick()方法。
例如......
container.Register(
Classes.FromAssemblyNamed("Framework").Pick(),
Classes.FromAssemblyNamed("Orders").Pick()
);