C#泛型在依賴注入中的使用

c#
小樊
95
2024-08-21 22:18:34
欄目: 編程語言

在C#中,泛型在依賴注入中的使用可以通過泛型接口、泛型類或泛型方法來實(shí)現(xiàn)。

一種常見的方式是定義一個(gè)泛型接口,表示需要注入的依賴:

public interface IRepository<T>
{
    void Add(T entity);
    T GetById(int id);
}

然后,定義一個(gè)泛型類來實(shí)現(xiàn)這個(gè)接口:

public class Repository<T> : IRepository<T>
{
    public void Add(T entity)
    {
        // 實(shí)現(xiàn)添加邏輯
    }

    public T GetById(int id)
    {
        // 實(shí)現(xiàn)根據(jù)id獲取實(shí)體邏輯
        return default(T);
    }
}

在使用依賴注入框架(如Unity、Autofac等)時(shí),可以將泛型類注冊(cè)到容器中,并在需要使用依賴時(shí)通過泛型注入:

var container = new UnityContainer();
container.RegisterType(typeof(IRepository<>), typeof(Repository<>));

var repository = container.Resolve<IRepository<User>>();
repository.Add(new User());
var user = repository.GetById(1);

這樣就可以在依賴注入中使用泛型來實(shí)現(xiàn)更加靈活和通用的依賴注入。

0