在Automapper自定义解析器中访问请求



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

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

如何将请求参数传递到自定义ValueResolver中?

我在stackoverflow上看到了两个类似的问题,在两年前提到这是不可能的。现在的情况是一样的还是已经解决了?

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

有一个ConstructedBy方法可以用来注入你自己的解析器对象,但我不知道如何在Request

中访问pass。

谢谢

我暂时使用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;
       }
}

我在Mapping配置中添加了一个AfterMap()来调用重置方法。

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

在控制器中,我将Request中的reset标志直接作为

传递。
var destination = Mapper.Map(new Source { Value ="Hello" },
                             new Destination(flag));

相关内容

  • 没有找到相关文章

最新更新