У меня проблема с отражением, динамическим вызовом объектов и чтением значений коллекции.
В ссылочном COM / Interop это будет выглядеть так:
ICollection collection = (ICollection)sth.getCollection("parameter");
SomeObject obj = (SomeObject)collection["id='1'"]; //DB WHERE condition
К сожалению, мне нужно сделать это с помощью отражения и динамического вызова объекта. Получить коллекцию довольно просто, но чтение «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, ???);
Я должен добавить, что в браузере объектов я вижу "this [v object]", но в ICollection.GetMethods()
я получаю свойство Item (System.Object
) (которое невидимо / отсутствует в браузере объектов)