gpt4 book ai didi

c# - 避免对单独的成员 Automapper 重复 coSTLy 方法调用

转载 作者:太空宇宙 更新时间:2023-11-03 11:59:09 25 4
gpt4 key购买 nike

谁能帮我避免这种情况,

CreateMap<Obj, ObjDTO>()
.ForMember(d => d.Prop1, opt => opt.MapFrom(src => SomeMethod(src) == null ? null : SomeMethod(src).Prop1))
.ForMember(d => d.Prop2, opt => opt.MapFrom(src => SomeMethod(src) == null? null : SomeMethod(src).Prop2));

此处 SomeMethod 需要为 2 个简单属性调用近 4 次。它甚至不支持安全导航运算符。

请分享您是如何摆脱这种情况的。

最佳答案

听起来您可以使用 AfterMap 操作:

CreateMap<Obj, ObjDTO>()
.ForMember(...)
.AfterMap((src, dest) =>
{
var foo = SomeMethod(src);
if (foo == null)
{
return;
}

dest.Prop1 = foo.Prop1;
dest.Prop2 = foo.Prop2;
});

但是需要这样做可能是因为您想在映射代码中做太多事情。最终,src 应该已经准备好进行映射,其 Prop1Prop2 属性存在并已分配。

或者您可以在 SomeMethod() 中使用内存,即对于每个输入您都记住输出,并在重复调用时返回后者。

关于c# - 避免对单独的成员 Automapper 重复 coSTLy 方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57872555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com