3

私の質問は次のとおりです。

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) は database で操作します。

4

1 に答える 1

3

できません。

簡単にするために、一般的なラッパーをその上に書くことができます。

public static T GetValue<T>(Object obj1, Object obj2)
{
return (T)PropertyInfo.GetValue(obj1, obj2);
}
于 2012-10-15T14:41:19.407 に答える