gpt4 book ai didi

C# 在 "bulk"中设置属性值(通过排除)

转载 作者:太空宇宙 更新时间:2023-11-03 21:21:06 26 4
gpt4 key购买 nike

在 C# 中,我有几个具有以下“逻辑”的类:

 //objA and objB are instances of the same class
objA.Property1 = objB.Property1;
objA.Property2 = objB.Property2;
objA.Property3 = objB.Property3;
objA.Property4 = objB.Property4;
.....
objA.Property40 = objB.Property40;

我不想将该值应用于所有属性(但其中很大一部分)。

这是重复的,如果“类”以某种方式在有新属性的地方发生变化,则不会出现编译错误,如果程序员不注意,就会出现错误,因为我们将丢失该属性更改... ..

我想知道是否有以下方法:

--> 应用所有属性的值,不包括专门指向的属性,例如:

    //possible syntax 
objA.SetAllPropertiesLess(objB, x => x.Id && x.CreateDate && x.IsDeleted);

不需要像这个那样“花哨”,但首先我想知道.NET框架中是否已经有类似的东西,如果没有,也许有人已经有了一个实现(轻量级/快)。

最佳答案

使用自动映射器。

通过以下命令从 nuget.org 安装它:

PM> Install-Package AutoMapper

然后将其导入类文件中并像下面这样使用它:

CreateMap<objA, objB>().ForDestinationMember(x => x.IsDeleted, opt => opt.Ignore());

希望对您有所帮助。如果您有任何疑问,请告诉我。

关于C# 在 "bulk"中设置属性值(通过排除),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30643299/

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