1

Value Injector: http://valueinjecter.codeplex.com/を使い始めたところですが、質問があります:

多くのプロパティを持つ Source クラスがあります。一部のプロパティには、「Profile」という共通の接尾辞が付いています。これらのプロパティは必ずしも文字列ではありませんが、ほとんどは文字列です。ターゲットには 1 つのプロパティがありDictionary<string, string>ます。「プロファイル」で終わるすべてのプロパティを、Dictionary<string, string>キー = プロパティ名および値 = プロパティの値で挿入したいと考えています。私はそれができると思いますが、ドキュメントは私にはあまり明確ではありません。誰かが私を正しい方向に向けることができますか? ありがとう!

4

1 に答える 1

1

申し訳ありませんが、Value Injector の経験はありませんが、AutoMapperを使用することを選択した場合は、 Custom Resolverを使用する可能性が高くなります。

Mapper.CreateMap<Source, Destination>()
    .ForMember(dest => dest.Profile, opt => opt.ResolveUsing<ProfileResolver>());

リゾルバーは次のようになります。

public class ProfileResolver : ValueResolver<Source, Dictionary<string, string>>
{
    protected override int ResolveCore(Source source)
    {
        var rc = new Dictionary<string, string>();
        // Do some funky reflection stuff here
        return rc;
    }

}

詳細については、カスタム リゾルバーのドキュメントを参照してください。

于 2012-12-13T04:44:48.097 に答える