你好,我想自动注册我的依赖项。
我现在拥有的是:
public interface IRepository where T : class
public interface IFolderRepository : IRepository
public class RepositoryBase : IRepository, IDisposable where T : class
public class FolderRepository : RepositoryBase, IFolderRepository
我已经注册了这个依赖:
container.Register();
一切正常,但在一个地方我需要使这个过程通用。喜欢:
var repository = container.GetInstance<>>();
我必须注册:
container.Register<>, RepositoryBase>();
有什么方法可以很好地注册 IRepository 以便为我返回例如 FolderRepository if T : Folder。
Cảm ơn
Bạn có thể sử dụng RegisterManyForOpenGeneric
注册所有通用实例:
container.RegisterManyForOpenGeneric(typeof(IRepository<>),
typeof(IRepository<>).Assembly);
对于开放类型:
container.RegisterOpenGeneric(typeof(IRepository<>), typeof(RepositoryBase<>));
参见文档 đây
Tôi là một lập trình viên xuất sắc, rất giỏi!