将类属性映射到其他(相同属性)类

时间:2012-04-27 13:24:55

标签: c#

我有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;
}

似乎必须有一种更为简单的方式。我只是不确定如何搜索它。有人能让我走上正轨。

2 个答案:

答案 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);

主页:http://automapper.org/

来源:https://github.com/AutoMapper/AutoMapper

教程链接http://www.codeproject.com/Articles/61629/AutoMapper