私はAutomapperをしばらく使っていますが、とてもうまく動作します。Automapper.Mapperから宛先タイプを取得
Mapper.CreateMap<Models.MyModel,Entities.MyEntity>();
どのような方法があり、typeof(Entities.MyEntity)
を返しますtypeof(Models.MyModel)
を提供する任意の方法: 私は、次のマッピングを持っていますか?
私はAutomapperをしばらく使っていますが、とてもうまく動作します。Automapper.Mapperから宛先タイプを取得
Mapper.CreateMap<Models.MyModel,Entities.MyEntity>();
どのような方法があり、typeof(Entities.MyEntity)
を返しますtypeof(Models.MyModel)
を提供する任意の方法: 私は、次のマッピングを持っていますか?
Mapper.GetAllTypeMaps()
メソッドを使用して登録済みのTypeMap
(発信元と宛先のタイプのペアおよびその他のマッピング関連情報を格納するためのオートマッパーのタイプ)をすべて取得できます。タイプマップを使用して
あなたがソースの種類を検索することができます:
var typeMap = Mapper.Configuration.ResolveTypemap(
typeof(Models.MyModel), //source type
typeof(Entities.MyEntity) //destination type
);
var destinationType = typeMap.DestinationType;
:
[Test]
public void Test()
{
Mapper.CreateMap<Models.MyModel, Entities.MyEntity>();
var destination = Mapper.GetAllTypeMaps()
.First(t => t.SourceType == typeof(Models.MyModel));
Assert.AreEqual(typeof (Entities.MyEntity), destination.DestinationType);
}
受け入れ答えよりも少しきれいで別の解決策は、AutoMapperのResolveTypeMap
機能を使用することですさらに、宛先タイプ(ここではEntities.MyEntity
)として基本タイプを渡すことができ、automapperは派生タイプを返します。