Castle.Windsor 注册具有抽象的通用类型

Castle.Windsor registering for Generic Types with abstraction

我有两个抽象 类 和一个 Dao 接口:

public abstract class DBEntity

public abstract class GenericDao<T> : IDao<T> where T : DBEntity

public interface IDao<T> where T : DBEntity

我正在尝试在我的服务构造函数中解析 IDao<ModelClass.Model>

this.cvDao = IoC.Resolve<IDao<CV>>();

问题从这里开始。

我正在尝试注册 IDao<> 并且我已经使用了一些方法,例如:

container.Register(Component.For(typeof(IDao<>))
                            .ImplementedBy(typeof(GenericDao<>))
                            .LifestylePerWebRequest());

container.Register(AllTypes.FromAssemblyNamed("cvdb.Dao")
                           .BasedOn(typeof(IDao<>))
                           .WithService.Base());

但是所有这些方法都会导致相同的异常并产生相同的效果。我的应用程序有一个无限循环和 WhosebugException。当我调试我的代码时,我发现我无法注册 IDao<>.

GenericDao 是一个抽象class。我应该尝试解析从它派生的 class 或将其类型更改为非抽象 class 以创建实例。