在C#中,泛型在依賴注入中的使用可以通過泛型接口、泛型類或泛型方法來實現。
一種常見的方式是定義一個泛型接口,表示需要注入的依賴:
public interface IRepository<T>
{
void Add(T entity);
T GetById(int id);
}
然后,定義一個泛型類來實現這個接口:
public class Repository<T> : IRepository<T>
{
public void Add(T entity)
{
// 實現添加邏輯
}
public T GetById(int id)
{
// 實現根據id獲取實體邏輯
return default(T);
}
}
在使用依賴注入框架(如Unity、Autofac等)時,可以將泛型類注冊到容器中,并在需要使用依賴時通過泛型注入:
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);
這樣就可以在依賴注入中使用泛型來實現更加靈活和通用的依賴注入。