Свойство подключенной службы должно вести к источнику данных
Всем привет,
У меня есть подключенные сервисы, и я использую свойства для извлечения данных из EF6.
В тестовом приложении я могу создать список с этими свойствами, чтобы заполнить combobox
ConnectedDataServices.DataServiceContext.GetType().GetRuntimeProperties().Select(x => x.Name).ToList();
Я могу получить vales из свойства he, но как объект типа вместо исходного типа ConcurrentBag<>.
Но как мне получить содержимое или значения объекта для привязки желаемого concurrentbag?
Что я уже пробовал:
var selectedProp = comboBox1.SelectedItem.ToString(); PropertyInfo propInfo = _availableProps.FirstOrDefault(x => x.Name == selectedProp); var results = propInfo.GetValue(ConnectedDataServices.DataServiceContext, null); Type type = results.GetType(); dataGridView1.DataSource = results; dataGridView1.Refresh();
результаты теперь являются типом объекта вместо ConcurrentBag<entity>
Richard Deeming
Тип времени компиляции result
будет object
; но тип времени выполнения будет любым типом, который возвращает свойство.
То DataSource
собственность берет на себя object
поэтому я изо всех сил пытаюсь понять , в чем проблема.
Herman<T>.Instance
Проблема заключалась в том, что я использовал ConcurrentBag в своем WCF. Переход к списку "объект" решил проблему. Я полагаю, что DataGridView не может отображать данные из объектов ConcurrentBAG<>.
Richard Deeming
Это звучит примерно так. Документация[^] говорит, что DataSource
требуется объект, реализующий либо то, либо другое IList
, IListSource
, IBindingList
, или IBindingListView
. Но Коллекции concurrentbag[^] не реализует ни один из этих интерфейсов.