C# 有没有办法从通过ajax调用传递的字符串中找到基类

C# 有没有办法从通过ajax调用传递的字符串中找到基类,c#,generics,inheritance,type-conversion,C#,Generics,Inheritance,Type Conversion,我试图做的是创建一种动态方法,在时间结束后解锁该数据库中的记录。传递的字符串是类型名称 我将该类型的字符串传递给JsonResult,该字符串包含我要从中创建类型的类的名称。然后我想从我刚刚创建的类型创建一个GenericRepository 我一直得到一个错误“type1”是一个变量,但它的用法与类型类似。这是一种可能的情况吗 public JsonResult UnlockRecord(string modelType) { Type type1 = Type.G

我试图做的是创建一种动态方法,在时间结束后解锁该数据库中的记录。传递的字符串是类型名称

我将该类型的字符串传递给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);
    }
publicJSONResult解锁记录(字符串模型类型)
{
Type type1=Type.GetType(modelType);
GenericRepository typeRepository=新的GenericRepository();
type1 lockedRecord=typeRepository.GetFirst();
typeRepository.BatchUnlock(type1.Id);
返回Json(null);
}

我认为您希望创建一个泛型类型。您可以使用
MakeGenericType
Activator.CreateInstance

var repoType = typeof(GenericRepository<>).MakeGenericType(Type.GetType(typeName));
var repo = Activator.CreateInstance(repoType);
var repoType=typeof(GenericRepository);
var repo=Activator.CreateInstance(repoType);
如果存储库中有构造函数参数,则还需要传递这些参数。

可能重复的