我正在使用 C#、ASP.NET,我使用 UPS API 跟踪来获取交付信息,在发出请求后,我返回了一个对象 (trackResponse),它非常复杂并且嵌入了很多字段/属性或其他对象在里面。
如何编程以搜索该对象中的每个可能的值字段(字符串/整数/双精度)?
基本上我想要这样的方法:
public static bool FindValueInObject(object Input, object SearchValue)
{
Type MyType = Input.GetType();
var props = typeof(MyType).GetProperties();
foreach (PropertyInfo propertyInfo in props)
{
//Console.WriteLine(string.Format("Name: {0} PropertyValue: {1}", propertyInfo.Name, propertyInfo.GetValue(mco, null)));
Type ObjectType = propertyInfo.GetType();
Type SearchType = SearchValue.GetType();
object ObjectValue = propertyInfo.GetValue(Input, null);
if (ObjectType == SearchType)
{
if(ObjectValue == SearchValue)
{
return true;
}
}
else
{
FindValueInObject(ObjectValue, SearchValue);
}
}
return false;
}
但是上面的代码不起作用。请看一下。