c# - CaSTLe ResolveAll 返回空数组

标签 c# .net castle-windsor

这是我的程序集 (TestAssembly) 的样子

Class BaseClass
{
....
....
}

Interface I1
{
....
....
}

Interface I2 : I1
{
....
....
}
Interface I3 : I1
{
....
....
}
Class A : BaseClass, I2
{
....
....
}

Class B : BaseClass, I3
{
....
....
}

我正在使用 CaSTLe Windsor 来注册和解析所有这些组件。

container.Register(AllTypes.FromAssemblyNamed("TestAssembly")
                            .BasedOn<I1>()
                            .LifestyleSingleton());

我正在尝试使用 ResolveAll Types of I1 (Interface I1)

container.ResolveAll<I1>();

希望获得对象 A 和 B 的数组。但我得到的是一个空数组。怎么了?

最佳答案

我相信你需要告诉容器哪些服务与接口(interface)相关联,比如:

container.Register(AllTypes.FromAssemblyNamed("TestAssembly")
    .BasedOn<I1>()
    .WithServiceBase()
    .LifestyleSingleton());

关于c# - CaSTLe ResolveAll 返回空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9105056/

相关文章:

c# - 为什么 CaSTLe Windsor 拦截器会破坏 C# 动态对象上方法的运行时绑定(bind)?

java - Hibernate:使用单例 session 写入日志(无刷新)

c# - 将不同类型枚举值的数组传递给函数

c# - 将 float 转换为 UInt32 - 哪个表达式更精确

c# - 调用 Process.Start 并终止后无法访问 "Safely Remove"闪存驱动器

c# - 如何以编程方式创建 JOIN 语句?

c# - Xamarin.Forms:在饼图布局中放置标签

c# - 用计数数字替换代码中的文本

.net - 与银行合作的 API?

c# - 具有多个构造函数的 CaSTLe Windsor