我正在使用一项我不知道响应的实际结构的服务。因此,我将其作为object
:
object result = Service.GetStuff();
如果我在调试器中检查它,它看起来像这样:
我尝试将其转换为dynamic
,Hashtable
和Arraylist
,但没有成功。如何访问对象的属性?类似的 SO 问题对我没有帮助。
无法使用 [] 将索引应用于“对象”类型的表达式
如果结果始终是一个数组(或实现的东西IList
,如 an ArrayList
),您可以将其强制转换为 an IList
,这是定义索引运算符的地方:
IList result = Service.GetStuff() as IList;
然后您可以应用索引运算符。如果它不总是一个数组,那么您可以使用反射来确定它是否是一个数组,然后将其转换。
更大的问题是,既然你不知道它们是什么,你打算如何处理这些对象?
似乎是某种字典尝试将对象转换为IDictionary
. 如果这没有帮助,您可以调用result.GetType()
来查看实际类型并转换为该类型。
我也认为动态也应该起作用。
dynamic result = Service.GetStuff();
int reconnectDelay = ((dynamic)result[0]).reconnectDelay;