У меня есть базовый контроллер: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?
У меня нет знаний ответить на ваш вопрос, но я нашел это интересным, поэтому я сделал небольшое исследование и придумал [это] (http://stackoverflow.com/questions/106383/c-sharp -Может-публично-наследуемые-методы-быть скрытыми, например, из-частного к производным). Принятый ответ дает хорошее объяснение, поэтому мне тоже понравилось :) Надеюсь, это поможет. –