动态Getvalue返回对象强制转换为PropertyInfo.PropertyType

时间:2012-10-15 14:36:34

标签: c# .net reflection casting propertyinfo

我的问题是:如何制作

PropertyInfo.GetValue(object, null);

返回值,转换为PropertyType,而不是返回对象。

我尝试过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)操纵数据库。

1 个答案:

答案 0 :(得分:3)

你不能。

为简单起见,可以在其上写一个通用的包装器。

public static T GetValue<T>(Object obj1, Object obj2)
{
return (T)PropertyInfo.GetValue(obj1, obj2);
}