我有一个这样的界面:
public interface IGenericRepository<T>
我有一个像这样的基类:
public abstract class GenericRepository<T> : IGenericRepository<T> where T : class
我有这样的课:
public class AGenericRepository<T> : GenericRepository<T> where T : class
没有约定,我成功注册如下:
container.Register(
Component.For(typeof(GenericRepository<>)).ImplementedBy(typeof(AGenericRepository<>))
);
我可以像这样成功地解析一个对象:
var robot = container.Resolve<GenericRepository<Android>>();
但是,当尝试像这样按约定注册时:
container.Register(Classes.FromThisAssembly()
.BasedOn(typeof(GenericRepository<>))
.WithService.Base());
我无法像上面那样解决。是什么赋予了?