sách gpt4 ăn đã đi

c# - Đăng ký một bộ tiêm đơn giản cho các kiểu động

In lại Tác giả: Walker 123 更新时间:2023-11-30 17:45:57 29 4
mua khóa gpt4 giày nike

你好,我想自动注册我的依赖项。

我现在拥有的是:

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

câu trả lời hay nhất

Bạn có thể sử dụng RegisterManyForOpenGeneric 注册所有通用实例:

container.RegisterManyForOpenGeneric(typeof(IRepository<>),
typeof(IRepository<>).Assembly);

对于开放类型:

container.RegisterOpenGeneric(typeof(IRepository<>), typeof(RepositoryBase<>));

参见文档 đây

关于c# - 注册动态类型的简单注入(inject)器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26974570/

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress