1
AutoMapperでデフォルトのマッピング先マッピングを作成することはできますか?AutoMapperの継承クラスのデフォルトマッピング設定
ソースクラス:
class SourceA {
public string X { get; set; }
}
class SourceB {
public string Y { get; set; }
}
先クラス:
class DestBase {
public List<string> Z { get; set; }
}
class DestA : DestBase {
public string X { get; set; }
}
class DestB : DestBase {
public string Y { get; set; }
}
とマッピングの設定は、次のものが含まれます。
cfg.CreateMap<SourceA, DestA>()
.ForMember(dest => dest.Z, src => src.MapFrom(s => null));
cfg.CreateMap<SourceB, DestB>()
.ForMember(dest => dest.Z, src => src.MapFrom(s => null));
はすべての宛先のデフォルトのマッピングを作成することが可能です継承するクラスDestBase
を繰り返すことを避けるために.ForMember(...)
行?
例えば、
私のソースオブジェクトは他人に公開されているため、すばらしくてきれいに見える必要があります。すべての宛先クラスが(現在)「DestBase」クラスから継承しているわけではありません。そのため、ソースクラスでは(ダミー)インタフェースを実装する必要はありません。しかし、それ以外の解決策がない場合は、問題を解決する可能性があります...私はそれをテストします... –
不運にも、インクルードが機能するためには、共通のソースタイプまたはインターフェイスが必要です。 –