Hi I want to automate little bit registration of my dependencies.
What i have now is:
public interface IRepository<T> where T : class
public interface IFolderRepository : IRepository<Folder>
public class RepositoryBase<T> : IRepository<T>, IDisposable where T : class
public class FolderRepository : RepositoryBase<Folder>, IFolderRepository
I have registered this dependency:
container.Register<IFolderRepository, FolderRepository>();
All work fine but in one place i need to make this process generic. Like:
var repository = container.GetInstance<IRepository<TModel>>();
and I had to register:
container.Register<IRepository<Folder>, RepositoryBase<Folder>>();
Is there any way to nicely register IRepository to return for me for example FolderRepository if T : Folder.
Thanks
You can register all generic instances using
RegisterManyForOpenGeneric
:and for open types:
See documentation here