0

ソース タイプのプロパティの名前を指定するSystem.Reflection.PropertyInfoと、宛先プロパティの を取得する必要があります。

PropertyInfo GetDestinationProperty<TSource, TDestination>(string sourceProperty)
{
    var map = Mapper.FindTypeMapFor(typeof(TSource), typeof(TDestination));
    // [magic]
    return result;
}

私が解決しようとしている問題はこれです: 私は MVC アプリケーションを持っています。データベース コンテキストを保存する前に独自の検証を提供する Entity Framework モデル (ソースの種類) があります。この EF モデルをマッピングしている複雑な多層ビューモデルがあります。クライアントに適切に表示されるように、EF 検証エラーを MVC ビュー モデル検証エラーに変換する必要があります。たとえば、プロパティ "Description" で EF エラーが発生した場合、それをマップされたプロパティ "Info.Description" に変換する必要があります。

4

3 に答える 3

-1

単純なリフレクションを使用してそれを実現できます。ソースと宛先でプロパティ名が一致する場合、次のコードを記述できます。

PropertyInfo GetDestinationProperty<TSource, TDestination>(string sourceProperty)
{
    var result = typeof(TDestination).GetProperty(sourceProperty);
    return result;
}
于 2013-09-06T14:32:15.907 に答える