【发布时间】:2018-04-22 22:30:49
【问题描述】:
我正在尝试使用Activator.CreateInstance() 来实例化具有动态类型字段的数组(我得到了在运行时必须用于数组字段的类型为Type arrayType = arrayFieldType.MakeArrayType())。
singleSet.ZaznamyObjektu = Activator.CreateInstance(arrayType, new object[] { rowCount });
(rowCount 是一个整数。)我根据How do I create a C# array using Reflection and only type info? 选择了这种方法,但它一直给我 RuntimeBinderException:
无法将类型“object”隐式转换为“PodperneZarizeniTypeZaznamObjektu[]”。存在显式转换(您是否缺少演员表?)
但是当我不能使用类型的确切名称时,我不知道如何进行强制转换或转换。我也尝试过使用Array.CreateInstance(),但它给了我类似的例外:
无法将类型“System.Array”隐式转换为“PodperneZarizeniTypeZaznamObjektu[]”。存在显式转换(您是否缺少演员表?)
【问题讨论】:
-
singleSet.ZaznamyObjektu的类型是什么? -
PodperneZarizeniTypeZaznamObjektu[]
标签: c# arrays dynamic late-binding activator