自动映射器构造使用更改的值

时间:2018-12-10 19:03:26

标签: c# .net-core automapper

我有一个CreateMap:

node("kaniko-jnlp") {
stage('Building Stage') {
  git 'https://github.com/jenkinsci/docker-jnlp-slave.git'

      sh ''' /kaniko/executor -f `pwd`/Dockerfile -c `pwd` --insecure- 
               skip-tls-verify --cache=true 
             --- destination=gcr.io/project/project:v1 '''
    } 

然后我执行转换(vm是我的视图模型):

            CreateMap<ExtractInsertRequestViewModel, Extract>()
            .ConstructUsing(source => new Extract(source.MemberId,
                source.IsChargeBack,
                source.Type,
                source.Description,
                source.Value,
                source.VerifyBalanceBeforeRedeem))

但是在我的Extract ctor内部,我有2个函数可以更改值(SetStatus和SetValue):

var extract = Mapper.Map<Extract>(vm);

问题是,使用任何一个函数更改了值之后,将使用原始值创建Extract对象结果。

例如:我通过了一个带有正值的借方操作。 SetValue方法应转换为负值,但在最终对象中,该值仍为正值。

在我看来,ConstructUsing在构造函数之后运行。构造函数设置了正确的值,但是ConstructUsing用原始值覆盖了这些值。

对这里发生的事情有任何想法吗?

谢谢!

0 个答案:

没有答案