我似乎无法获得正确的配置服务。
我们的想法是注册所有具有标记接口IDao的类型,并将基类作为服务。
基类
public abstract class DirectorDaoContract : RepositoryBase<Director>
{
public abstract Director Get(int id);
}
实施课程 公共课导演道:IDao主任道先生 {
public override Director Get(int directorId)
{
.....
}
}
理念是
Resolve<DirectorDaoContract>()
将返回DirectorDao
我目前的尝试
container.Register(AllTypes.FromAssemblyNamed(dataAssembly)
.BasedOn<IDao>)
.WithService.Base()
.Configure(c => c.LifeStyle.PerThread));
无论我尝试过什么,我都无法获得正确的服务。
答案 0 :(得分:1)
container.Register(AllTypes.FromAssemblyNamed(dataAssembly)
.BasedOn<IDao>()
.WithService.FromInterface()
.Configure(c => c.LifeStyle.PerThread));
答案 1 :(得分:0)
试试这个
container.Register(AllTypes.FromAssemblyNamed(dataAssembly(
.BasedOn(typeof(DirectorDaoContract))
.WithService.Select((t,b) => t.GetInterfaces().Where(d => d == typeof(IDao)).AsEnumerable<Type>());