В ядре 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
, похоже, ничего не дает.