3

AutoMapperのIObjectMapperインターフェイスを使用して、タイプ用に独自のカスタムObject Mapperを作成することを計画していますが、実装されたマッパーをAutoMapperに登録できる場所が見つかりません。誰かがそれを登録する方法を教えてもらえますか?

編集:これの詳細については、AutoMapper-ユーザーグループでの議論に従ってください。

4

1 に答える 1

2

ここに進む1つの方法は、MapperRegistryクラスの静的レジストリ関数を置き換えることです。現在のバージョンは次のとおりです。

public static Func<IEnumerable<IObjectMapper>> AllMappers = () => new IObjectMapper[]
{
#if !SILVERLIGHT
    new DataReaderMapper(),
#endif
    new TypeMapMapper(TypeMapObjectMapperRegistry.AllMappers()),
    new StringMapper(),
    new FlagsEnumMapper(),
    new EnumMapper(),
    new ArrayMapper(),
    new EnumerableToDictionaryMapper(),
    new DictionaryMapper(),
#if !SILVERLIGHT
    new ListSourceMapper(),
#endif
    new EnumerableMapper(),
    new AssignableMapper(),
    new TypeConverterMapper(),
    new NullableMapper()
};

基本的にそれをコピーして、次のようなことをします。

MapperRegistry.AllMappers = () => new IObjectMapper[] {
   // Insert your custom mapper somewhere in this list
};

Mapper.CreateMapまたはMapper.Initializeビジネスを実行する前にそれを実行してください。マッパーは順番に評価されます。

于 2010-03-16T12:51:51.017 に答える