gpt4 book ai didi

c# - 从集合中反射 PropertyInfo.GetValue

转载 作者:行者123 更新时间:2023-11-30 21:20:04 25 4
gpt4 key购买 nike

我在反射、动态调用对象和读取集合值方面遇到问题。
在 Referenced 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() 中,我正在获取属性项(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'" } );

关于c# - 从集合中反射 PropertyInfo.GetValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3462365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com