繁体   English   中英

集合的反射PropertyInfo.GetValue

[英]Reflection PropertyInfo.GetValue from Collection

我在反射,动态调用对象和读取集合值方面遇到问题。
在“引用的COM /互操作”中,它看起来像这样:

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 )(在对象浏览器中不可见/不存在)

您尝试过get_Item吗?

object oICollection = sthGetCollectionMethod.Invoke(
    sthInstance, BindingFlags.Instance | BindingFlags.Public, null,
    new object[1] { "parameter" },
    System.Globalization.CultureInfo.InvariantCulture);

object obj = tICollection.GetMethod("get_Item").Invoke(
    oICollection, new object[] { "id='1'" } );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM