을 숨기고 나는 기본 컨트롤러가 :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 예외를 throw해야합니까?
또한 위의 모든 동작에서 IEnumerable 및 T 대신 IHttpActionResult를 반환하는 것이 가장 좋습니다.
질문에 대답 할 지식이 없지만 흥미로워서 조금 연구를하고 [this] (http://stackoverflow.com/questions/106383/c-sharp)를 제안했습니다. public-inherited-methods-be-hidden-eg-private-to-derived)를 사용할 수 있습니다. 받아 들여진 응답은 좋은 설명을 만들어 그래서 나는 그것을 역시 좋아한다 : 희망한다 도움이된다. –