c#设置属性值在"(排除)
本文关键字:排除 quot 设置 属性 | 更新日期: 2023-09-27 17:53:11
在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;
我不想把值应用到所有的属性(但很大一部分)。
这是越来越重复,如果不知何故"类"的变化,有一个新的属性,没有编译错误,如果程序员不注意,将会有一个bug,因为我们将失去属性的变化.....
我想知道是否有以下方法:
->应用所有属性的值,不包括那些特别指向的,比如:
//possible syntax
objA.SetAllPropertiesLess(objB, x => x.Id && x.CreateDate && x.IsDeleted);
不需要像这个这样"花哨",但是对于开始,我想知道是否已经有类似的东西在。net框架中,然后如果没有,也许有人已经有一个实现(轻量级/快速)。
使用AutoMapper。
通过以下命令从nuget.org安装:
PM> Install-Package AutoMapper
然后将其导入到类文件中,并像下面这样使用:
CreateMap<objA, objB>().ForDestinationMember(x => x.IsDeleted, opt => opt.Ignore());
希望这对你有帮助。如果您有任何疑问,请告诉我。
您可以使用AutoMapper和条件映射来实现。