我正在做一个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));