1

ASP.NET Web API プロジェクトに取り組んでいます。

ドメイン オブジェクトから DTO へのマッピングに Auto-mapper を使用しています

リクエスト パラメータをカスタム ValueResolver に渡すにはどうすればよいですか?

2年前に投稿されたstackoverflowに関する同様の質問がいくつか見られましたが、これは実行できないと述べています。これは現在も同じ状況ですか、それとも解決されましたか?

2 年前に提起された同様の質問へのリンク: How to pass values to a Custom Resolver in Automapper?

独自の Resolver オブジェクトを挿入するために使用できるConstructedByメソッドがありますが、Request でパスにアクセスする方法はわかりません

ありがとう

4

1 に答える 1

1

AfterMap()とりあえず機能を使いました。誰かがより良い解決策を持っていることを願っています。

簡単にするために、ソース クラスと宛先クラスを

public class Source {

       public string Value {get;set;}

}

public class Destination{

       public string Value {get;set;}            

       private bool _reset;

       public Destination(bool reset = false){
           _reset = reset;
       } 

       public void TryReset(){
           if(!_reset) return;

            Value = string.Empty;

       }

}

AfterMap()リセット メソッドを呼び出すために、マッピング構成にを追加しました。

Mapper.CreateMap<Source, Destination>()
      .AfterMap( (source, dest) => dest.TryReset());

コントローラーでは、リクエストからリセットフラグを直接渡します

var destination = Mapper.Map(new Source { Value ="Hello" },
                             new Destination(flag));
于 2012-12-20T21:04:30.377 に答える