У меня возникла ситуация, когда я хотел бы выполнить привязку специальных параметров для контроллера api в ядре ASP.NET. В WebAPI 2.0 можно было выполнить пользовательскую привязку к примитивным типам, внедряя различные интерфейсы, такие как IValueProvider и предоставляющие ValueProviderFactory. Это не похоже на ядро ASP.NET, насколько я понимаю из the documentation I found here.Связывание пользовательских параметров ASP.NET Core
Я заметил this SO post, который привел меня к this article, который переопределяет поведение для MutableObjectModelBinder. Казалось бы, я мог бы сделать что-то вдоль этих линий, таких как:
[HttpGet]
[Route("api/{domain}/[controller]")]
public IEnumerable<string> Get([ModelBinder(BinderType = typeof(MyCustomBinder))]string orderby)
{
//Do stuff here
}
Это не обязательно, кажется мне правильным, так как я просто имеем дело с примитивным типом, однако я не могу найти какую-либо документацию на другой путь делая это. Любая помощь будет оценена по достоинству.
EDIT: В случае, если кто-то наткнулся на это, я решил пойти со вспомогательным классом, чтобы проанализировать параметр из-за того, что он должен соответствовать срокам. Как только я получу шанс понять это, я вернусь и отправлю решение, касающееся этой проблемы.
Этот ответ работает, но стоит отметить, вам не нужен '[ModelBinder (BinderType = TypeOf (MyCustomBinder))]' атрибут ваш пользовательский тип класса. Просто наличие ModelBinderProvider в коллекции ModelBinderProviders достаточно. – Pondidum