我有2个类具有完全相同的命名属性(1个业务类和1个数据类)。
此刻我写了一个'转换'方法,将van 1类的所有属性映射到另一个:
private class BusinessLogic convert(Datalogic dataclass)
{
Businesslogic businessclass = new BusinessLogic();
businessclass.ID = dataclass.ID;
businessclass.name = dataclass.name;
.....
return businessclass;
}
似乎必须有一种更为简单的方式。我只是不确定如何搜索它。有人能让我走上正轨。
答案 0 :(得分:4)
这是映射工具的任务,例如AutoMapper - 如果所有属性都被命名为相同,则这几乎是一行,因为按照惯例,它们将被映射到目标类中的相应属性。
对于您的特定示例,可能是:
Mapper.CreateMap<Datalogic, BusinessLogic>();
BusinessLogic businessclass = Mapper.Map<Datalogic, BusinessLogic>(dataclass);
答案 1 :(得分:2)
AutoMapper 是一个可用的库,可为您执行此Object to Object
映射。
使用AutoMapper,您的代码可以简化为
Mapper.CreateMap<Datalogic , Businesslogic >();
Product product= GetProductFromDB(2);
Businesslogic productViewItem = Mapper.Map<Datalogic , Businesslogic >(product);