Есть ли способ найти базовый класс из строки, переданной через вызов ajax
Я пытаюсь создать динамический способ разблокировать записи в этой базе данных по истечении времени. Передается строка, которая является именем типа.
Я передаю строку типа в JsonResult, эта строка содержит имя класса, из которого я хотел бы создать тип. Затем я хочу создать GenericRepository из типа, который я только что создал.
Я продолжаю получать сообщение об ошибке "type1" является переменной, но используется как тип. Это возможный сценарий?
public JsonResult UnlockRecord(string modelType)
{
Type type1 = Type.GetType(modelType);
GenericRepository<type1> typeRepository = new GenericRepository<type1>();
type1 lockedRecord = typeRepository.GetFirst();
typeRepository.BatchUnlock(type1.Id);
return Json(null);
}
1 ответ
Я думаю, что вы хотите создать универсальный тип. Вы бы сделали это с помощью отражения MakeGenericType
а также Activator.CreateInstance
var repoType = typeof(GenericRepository<>).MakeGenericType(Type.GetType(typeName));
var repo = Activator.CreateInstance(repoType);
Если в вашем репозитории есть аргументы конструктора, вам также нужно их передать.