1

まったく同じ名前の属性を持つ2つのクラスがあります(1つのビジネスクラスと1つのデータクラス)。

この時点で、van1クラスのすべての属性を他のクラスにマップする「convert」メソッドを作成しました。

private class BusinessLogic convert(Datalogic dataclass)
{
    Businesslogic businessclass = new BusinessLogic();
    businessclass.ID = dataclass.ID;
    businessclass.name = dataclass.name;
    .....
    return businessclass;
}

もっと簡単な方法があるに違いないようです。どうやって検索すればいいのかわからない。誰かが私を正しい軌道に乗せることができますか?

4

2 に答える 2

4

これは、 AutoMapperなどのマッピングツールのタスクです。すべてのプロパティに同じ名前が付けられている場合、慣例により、ターゲットクラスの対応するプロパティにマップされるため、これはほぼ1行です。

あなたの特定の例では、次のようになります。

Mapper.CreateMap<Datalogic, BusinessLogic>();
BusinessLogic businessclass = Mapper.Map<Datalogic, BusinessLogic>(dataclass);
于 2012-04-27T13:29:33.617 に答える
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

于 2012-04-27T13:30:35.637 に答える