我有一個基本的控制器: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