Мне нужно изменить свойство Capacity
для динамическая переменная типа List <* DynamicType *>
.
Проблема в том, что Activator
возвращает объект
- преобразованную переменную, если тип переменной не указан вместо правильного List <* DynamicType *>
, и лучшее, что я могу сделать, это привести его к IList
:
DynamicTypeBuilder builder = new DynamicTypeBuilder() { ... };
Type dataType = builder.GenerateType(...);
Type listDataType = typeof(List<>).MakeGenericType(dataType);
IList list = (IList)Activator.CreateInstance(listDataType);
После некоторого поиска я нашел только один хак:
dynamic dynamicList = list;
dynamicList.Capacity = dataRowsCount;
Хотя в моем случае это было бы приемлемо. Интересно, есть ли другой способ сделать это.