Приведение к общему списку переменных динамического типа

Мне нужно изменить свойство 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;

Хотя в моем случае это было бы приемлемо. Интересно, есть ли другой способ сделать это.

5
задан Dmitry Polyanitsa 15 October 2011 в 09:07
поделиться