1

我正在开发一个 ASP.NET Web API 项目。

我使用 Auto-mapper 从我的域对象映射到 DTO

如何将请求参数传递给 Custom ValueResolver ?

两年前,我在 stackoverflow 上看到了一些类似的问题,其中提到无法做到这一点。现在是同样的情况还是已经解决了?

链接到两年前提出的类似问题:如何在 Automapper 中将值传递给自定义解析器?

有一个ConstructedBy方法可用于注入您自己的 Resolver 对象,但我不知道如何访问请求中的传递

谢谢

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()在 Mapping 配置中添加了一个来调用 reset 方法。

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 回答