Передача RegionInfo контроллеру, как CultureInfo - PullRequest
0 голосов
/ 09 января 2019

В ядре Asp.net я могу передать CultureInfo в контроллер в виде строки, но когда я пытаюсь передать RegionInfo, я не могу заставить его принять.

Вот моя основная конечная точка контроллера для тестирования:

    [HttpHead]
    public IActionResult Head([FromQuery] string name, [FromQuery] RegionInfo region, [FromQuery] CultureInfo culture)
    {
        return Ok();
    }

Я пытался передать строку и другие вещи, но я получаю следующую ошибку:

Could not create an instance of type 'System.Globalization.RegionInfo'. Model bound complex types must not be abstract or value types and must have a parameterless constructor.

Похоже, что RegionInfo не хватает чего-то, что делает его хорошо работающим с промежуточным программным обеспечением, с mongoDB, ElasticSearch и т. Д .; Или что RegionInfo не был написан для использования с внешним кодом и библиотеками.

К сожалению, я чувствую себя слишком потерянным для определенного вопроса. В целом, я просто хочу знать, как правильно отказаться и сохранить регион / страну без написания моего собственного объекта, подобного RegionInfo. Я также хочу избежать строгой типизации этого фрагмента данных.

Есть ли конкретный способ, которым RegionInfo должен пройти мимо? Есть ли какой-нибудь конвертер или сериализатор или обертка или что-то, что я могу написать, чтобы заставить его работать волшебным образом, как CultureInfo? Похоже, что CultureInfo имеет TypeConverter, но добавление его во время выполнения к RegionInfo, похоже, ничего не дает.

...