我有一个基本的控制器:Asp.Net WebApi2隐藏控制器动作
public abstract class EntityController<T> : BaseController
{
public EntityController(ILogService logService) : base(logService) { }
[HttpGet]
public abstract IEnumerable<T> Get();
[HttpGet]
public abstract T Get(int id);
[HttpPost]
[ValidateModel]
public abstract IHttpActionResult Create(T dto);
[HttpPut]
[ValidateModel]
public abstract IHttpActionResult Update(T dto);
[HttpDelete]
public abstract IHttpActionResult Delete(int id);
}
一切工作的大多数控制器继承此类罚款。但是,我有几个控制器,我想'隐藏'Get()动作。
是否有可能在动作级别这样做,还是应该抛出MethodNotFound异常?
此外,是否所有上述操作返回IHttpActionResult而不是IEnumerable和T的最佳做法?
我没有知识来回答你的问题,但我发现它很有趣,所以我做了一点研究,并拿出[this](http://stackoverflow.com/questions/106383/c-sharp - 可以-公开继承的方法 - 可以隐藏 - 例如制造和私营部门对衍生)。接受的答案是一个很好的解释,所以我也喜欢它:)希望它有帮助。 – 2014-10-09 12:12:51