如何最好地执行从超类到子类的成员赋值

本文关键字:子类 成员 赋值 超类 何最好 执行 | 更新日期: 2023-09-27 17:57:40

我有一个类AMX_Observation,它是石头写的。(它是从dbml文件中自动生成的,代表一个远程DB表条目。)我想用子类来添加一些字段。但是这个类有18个成员,而且它只是我需要在上面做这件事的十几个类中的一个,所以通过手动逐个复制成员来构建我的子类对于维护POV来说并不是特别有吸引力。

我知道有Object.MemberwiseClone,但它只是从一个对象复制到另一个相同类的对象。我还没有找到任何可以将超类的成员复制到子类的东西。

FWIW,只需要浅拷贝。

如何最好地执行从超类到子类的成员赋值

考虑使用AutoMapper:http://automapper.org/

如果您使用的是Visual Studio,它也可以通过NuGet获得。

如果您有一个继承自AMX_Observation的子类AMX_ObservationDto,您可以复制如下属性:

首先,制作一个映射器:

Mapper.CreateMap<AMX_Observation, AMX_ObservationDto>();

现在复制:

AMX_ObservationDto dto = Mapper.Map<AMX_ObservationDto>(amx_observationInstance);