为变量分配类型-';A';是一种类型,但使用起来像';变量';

本文关键字:类型 变量 一种 起来 分配 | 更新日期: 2023-09-27 18:19:58

我正在尝试基于输入字符串动态创建对象。字符串到类的类型映射是在_l中预先构建的。

class A {....}
class B {....}
var _l = new Dictionary<string, Type> { { "1", A } .... } // Error
// 'A' is a type but is used like a 'variable'
PropertyInfo propertyInfo = _l["0"].GetProperty("xxxx");
ObjectType instance = (ObjectType)Activator.CreateInstance(objectType)
propertyInfo.SetValue(instance, 
    Convert.ChangeType(value, propertyInfo.PropertyType), null);

然而,我得到了的错误

"A"是一种类型,但使用起来像"变量"

为变量分配类型-';A';是一种类型,但使用起来像';变量';

您需要typeof(A)

var _l = new Dictionary<string, Type> { { "1", typeof(A) } };

使用:

var _l = new Dictionary<string, Type> { { "1", typeof(A) } .... }