public interface IRepository<T>
{
void Add(T entity);
List<T> Get();
}
public class Repository<T> : IRepository<T>
{
List<T> _list = new List<T>();
public void Add(T entity)
{
_list.Add(entity);
}
public List<T> Get()
{
return _list;
}
}
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSingleton(typeof(IRepository<>), typeof(Repository<>));//接受两个开放泛型类型的type!!!!!!!!!!!!!
app.MapGet("/getall", (IRepository<int> res) =>//注意这里是IRepository<int>!!!!!!!!!!!!
{
return res.Get();
});
app.MapPost("/post/{id}", (int id, IRepository<int> res) =>//注意这里是IRepository<int>!!!!!!!!!!!!
{
res.Add(id);
return Results.Ok($"received {id}");
});
app.Run();
}
ASP.NET Core中对开放泛型(Open Generic)的依赖注入
发布时间 2023-10-19 22:07:25作者: JohnYang819