[INTRO] Я знаю, что повсюду около миллиона тестов на дженерики и рефлексы, но для меня это становится черной дырой, и чем больше я читаю, тем больше теряюсь !!
Что мне нужно сделать, это просто, и я поражен, что это не было решено ранее.
[SAMPLE] Рассмотрим следующий фрагмент:
public async Task<string> generateJsonSchema(string model)
{
try
{
string modelName = "Models." + model;
Type t = Type.GetType(modelName, false);
JsonSchema4 schema = await JsonSchema4.FromTypeAsync<t>();
return schema.ToJson();
}
catch (Exception ex)
{
Logger.WriteToLogFile(ex.ToString(), "exception");
return "";
}
}
[ПРОБЛЕМА] Теперь основная проблема заключается в том, что переменная t оценивается в время выполнения , таким образом, JsonSchema4.FromTypeAsync<t>()
выдает ошибку 't' is a variable but is used like a type
при попытке собрать время компиляции
Кто бы ни использовал JsonSchema4 поймет, чего я пытаюсь достичь здесь.Вместо создания функции генерации для каждой из моих моделей или создания логики switch / if-else,
[ВОПРОС] Как заставить его получить имя модели в виде строковый параметр , преобразовать строковое имя модели в тип модели и передать его методу jSonSchema4.