返回

c#-如何防止AutoMapper映射类

发布时间:2022-07-09 23:30:18 249
# flask

我想防止autoMapper能够映射我的类。首先,我创建一个私有构造函数和一个限制映射的内部构造函数。

private Foo()
        {
        }
internal Foo(
            FooValidation valid,
            [CallerMemberName] string caller = null
        )
        { 
            if (caller != "CreateAsync")
                throw new CustomErrorException("Use Factory class!");
            if(valid.SouceId<0)
                throw new CustomErrorException("Foo with no Source");
            SourceId = valid.SouceId;
            //Just an example
}

这种映射不起作用:

var fooDto = ObjectMapper.Map(x);

但在更新时,仍然可以在不通过工厂类的情况下进行映射,并且内部构造函数中的规则将被忽略。例如:

var foo = await _fooRepository.GetAsync(id);
foo = ObjectMapper.Map(input, foo);
await _fooRepository.UpdateAsync(foo);

你知道我能做什么吗?

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像