ASP.NET MVC Web サイトで AutoMapper を使用して、データベース オブジェクトを ViewModel オブジェクトにマップしています。複数のプロファイルを使用して同じ型をマップしようとしていますが、別のロジックを使用しています。Matt のブログ投稿を読んで、そうしようと思いました。
本当に重要な部分は、AutoMapper 構成プロファイルです。プロファイルを使用して構成をグループ化できます。あるプロファイルでは日付をある方法でフォーマットし、別のプロファイルでは別の方法で日付をフォーマットすることがあります。ここでは、プロファイルを 1 つだけ使用しています。
そこで、1 つのケースのプロファイルを作成しました。
public class MyProfile : Profile
{
protected override string ProfileName
{
get
{
return "MyProfile";
}
}
protected override void Configure()
{
CreateMap<DateTime, String>().ConvertUsing<StringFromDateTimeTypeConverter>();
}
}
public class StringFromDateTimeTypeConverter : ITypeConverter<DateTime, String>
{
public string Convert(DateTime source)
{
return source.ToString("dd/mm/yyyy", CultureInfo.InvariantCulture);
}
}
そして別のケースのための別のもの:
public class MyProfile2 : Profile
{
protected override string ProfileName
{
get
{
return "MyProfile2";
}
}
protected override void Configure()
{
CreateMap<DateTime, String>().ConvertUsing<AnotherStringFromDateTimeTypeConverter>();
}
}
public class AnotherStringFromDateTimeTypeConverter : ITypeConverter<DateTime, String>
{
public string Convert(DateTime source)
{
return source.ToString("mm - yyyy", CultureInfo.InvariantCulture);
}
}
Mapper.Map<>()
ただし、プロファイルを指定するメソッドのオーバーロードが見つかりません。私もConfiguration
運が悪いのでオブジェクトを見ました。
最後に登録されたプロファイルが常に優先されます。
この目的でプロファイルを使用する方法はありますか?