Missingmethodexception
kalina9001
Germany
При:
В StackTrace только:
Зачем там вызов конструктора?
report.RegisterData(bindingSource, "MyData");
Получаю MissingMethodException с сообщением о том, что не найден конструктор типа листа приатаченного к BindingSource.В StackTrace только:
StackTrace:
bei System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
InnerException:
Похоже, что ошибка возникает только с классами не имеющими конструктора без параметров но, на тестовом примере ошибка не воспроизводится Зачем там вызов конструктора?
Комментарии
public MyCollection Items;
BindingSource может создать экземпляр типа MyCollection и посмотреть, какого типа элемент коллекции.
Самое смешное, что я сам вызываю тремя строчками выше перед регистрацией данных и ошибка не появляется.
Не мог бы ты взглянуть, на тестовый пример:
http://rapidshare.de/files/47576051/FR.rar.html
Места на которые стоит обратить внимание я отметил так: //AlexTZ
(класс TestItemListEx надо сделать public, чтобы к нему можно было достучаться из этого кода).
Чтобы исправить ошибку, нужен конструктор без параметров:
А зачем это делается в FastReport? Чтобы получить список свойств? Не проще ли сразу DataSource присвоить переданную коллекцию и получить желаемое вызовом GetItemProperties?
Это к сожалению не возможно, в конструктор листов у меня передается информация на основании которой и формируется список свойств для зарегистрированного пользователя (видимость, доступность только для чтения и.т.д
Придется городить прокси классы.
Но все равно не понятно что даст typeof(null) в выше озвученном примере
ЗЫ. В документации стоит указать для первого параметра функции RegisterData(IEnummerable,... необходимость конструктора без параметров
Было бы просто замечательно!
Новая версия соберется в полночь.