У меня проблема с отражением, динамическими вызывающими объектами и считыванием значений коллекции.
В Реферировано COM/Interop это будет выглядеть следующим образом:Reflection PropertyInfo.GetValue from Collection
ICollection collection = (ICollection)sth.getCollection("parameter");
SomeObject obj = (SomeObject)collection["id='1'"]; //DB WHERE condition
Unfortunetly мне нужно сделать это с отражением и динамическим вызывающим объектом. Получение коллекции довольно просто, но чтение «obj» - это другая история. Как мне это написать?
object oICollection = sthGetCollectionMethod.Invoke(
sthInstance, BindingFlags.Instance | BindingFlags.Public, null,
new object[1] { "parameter" },
System.Globalization.CultureInfo.InvariantCulture);
//and here is the problem:
//how to access object as array/hashtable collection?
object obj = tICollection.GetProperty("???").GetValue(oICollection, ???);
Я хотел бы добавить, что в браузере объектов я вижу «это [v] объект», но в ICollection.GetMethods()
я получаю свойство элемента (System.Object
) (который невидим/не существует в обозревателе объектов)
Это вопрос .NET, а не вопрос C# –
Вы пытаетесь получить значение вызова метода? Вы пытаетесь получить значение указанного свойства? – McKay
Я думаю, вы пытаетесь получить доступ к индексу для объекта? это [строка blah] ? – McKay