【发布时间】:2012-08-22 16:19:53
【问题描述】:
是否可以有一个通用的 web api 来支持您项目中的任何模型?
class BaseApiController<T> :ApiController
{
private IRepository<T> _repository;
// inject repository
public virtual IEnumerable<T> GetAll()
{
return _repository.GetAll();
}
public virtual T Get(int id)
{
return _repositry.Get(id);
}
public virtual void Post(T item)
{
_repository.Save(item);
}
// etc...
}
class FooApiController : BaseApiController<Foo>
{
//..
}
class BarApiController : BaseApiController<Bar>
{
//..
}
这是一个好方法吗?
毕竟,我只是在重复 CRUD 方法?我可以使用这个基类为我做这项工作吗?
这样好吗?你会这样做吗?有更好的主意吗?
【问题讨论】:
-
嗨,我知道这是一个老问题,但你能解释一下你是如何设法调用你的通用操作方法的吗?看起来您无法仅使用路由规则来完成此操作。我将不胜感激。
标签: c# generics asp.net-web-api