私は以下のコードを持っています。
すべてのフィールドは、送信元オブジェクトから送信先オブジェクトにうまくマッピングされます。
しかし、私が計算する必要がある宛先オブジェクトには1つのフィールドがあります。AutoMapperでカスタムロジックを追加するにはどうすればよいですか?
たとえば、 DestinationObj.Statusは、sourceobjの特定のフィールドに応じて設定できます。
私はコードを書くとしたら、それはのようになります。私はAutoMapperに似た何かを行うことができます
foreach (var rec in listData)
{
string status;
if (!String.IsNullOrEmpty(rec.Field1))
{
status = "Stage 1";
}
if (!String.IsNullOrEmpty(rec.Field2))
{
status = "Stage 2";
}
if (!String.IsNullOrEmpty(rec.Field3))
{
status = "Stage 3";
}
}
?
var config = new MapperConfiguration(c =>
{
c.CreateMap<SourceObj, DestinationObj>()
.ForMember(x => x.Status, m => m.MapFrom([Not sure at this point ]));
});
EDIT: 一覧destinObj =新しいリスト();
foreach (var rec in listSourceObject)
{
destinationObj do = new destinationObj();
// Manually map all of the fields...
string status;
if (!String.IsNullOrEmpty(rec.Field1))
{
do.status = "Stage 1";
}
if (!String.IsNullOrEmpty(rec.Field2))
{
do.status = "Stage 2";
}
if (!String.IsNullOrEmpty(rec.Field3))
{
do. status = "Stage 3";
}
destinObj.Add(do);
}
'listData'はどこから来たのですか? 「ステータス」はどこに行くのですか?適用するメソッドは、マッピングにはまったく関係していません。 – krillgar
編集時にコードを整理しました。 – PrivateJoker
まだ明らかではありません。両方のオブジェクトは自分自身のコレクションですか? – krillgar