繁体   English   中英

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());

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM