我的问题是:如何使
PropertyInfo.GetValue(object, null);
返回强制转换为属性类型的值,而不是返回对象。
我尝试了Convert.ChangeType,但没有运气。
谢谢。
更新 1:
更多详情:
我的代码:
foreach (var propertyInfo in customerInfo.CustomerRelationship.GetType().GetProperties())
{
var relationshipList = (IList)propertyInfo.GetValue(customerInfo.CustomerRelationship, null);
foreach (var relationship in relationshipList)
{
}
}
跟
public struct CustomerInfo
{
public Customer CustomerItem { get; set; }
public Relationship CustomerRelationship { get; set; }
}
public class Relationship
{
public List<Contact> ContactItems { get; set; }
public List<Department> DepartmentItems { get; set; }
..........
}
因为我无法动态投射每个关系项显示我无法比较,所以查询(Linq)操作与数据库.
你不能。
为了简单起见,可以在其上编写一个通用包装器。
public static T GetValue<T>(Object obj1, Object obj2)
{
return (T)PropertyInfo.GetValue(obj1, obj2);
}