从具有嵌套对象的对象中获取值

时间:2013-10-14 20:13:49

标签: c# asp.net

我正在使用的服务我不知道响应的实际结构。因此我将其作为object

返回
object result = Service.GetStuff();

如果我在调试器中检查它,它看起来像这样:

enter image description here

我已尝试将其投放到dynamicHashtableArraylist,但没有成功。如何访问对象的属性?类似的SO问题对我没有帮助。

  

无法将带有[]的索引应用于“object”类型的表达式

2 个答案:

答案 0 :(得分:3)

如果结果总是一个数组(或实现IList的内容,如ArrayList),则可以将其转换为IList,是定义索引运算符的地方:

IList result = Service.GetStuff() as IList;

然后您可以应用索引运算符。如果它不总是一个数组,那么你可以使用反射来确定它是一个数组,然后再投射它。

更大的问题是,你有什么打算<​​em>做对象,因为你不知道它们是什么?

答案 1 :(得分:1)

似乎是某种字典尝试将对象转换为IDictionary。如果这没有帮助,您可以致电result.GetType()查看实际类型是什么并投射到那个。

我也认为动态也应该有用。

dynamic result = Service.GetStuff();
int reconnectDelay = ((dynamic)result[0]).reconnectDelay;