0

.NETMVC3ベースのプロジェクトのモジュールに8ページ以上あります。すべてのページを処理する単一のコントローラーがあります。ビューから値を取得するときは、ビジネスレイヤーでロジックを実行するためにローカルモデルに変換する必要があります。からモデルを変換するためにViewModel、私はAutoMapperを使用しています。オートマッパーをジェネリック関数にする可能性はありますか?

これが私が使用しているコードです:

Mapper.CreateMap<WorkLoadRatioViewModel, WorkLoadRatio>();
WorkLoadRatio _workloaddata = Mapper.Map<WorkLoadRatioViewModel, WorkLoadRatio>(_vmodel);
Mapper.CreateMap<LeadTimeDayDetailsViewModel, LeadTimeDayDetails>();
LeadTimeDayDetails _leadtimedata = Mapper.Map<LeadTimeDayDetailsViewModel,LeadTimeDayDetails>(_vmodel);

ジェネリック関数を呼び出すためだけにすべてのコードを持ってくる方法はありますか?例えば、

public static TModel ToModel<TModel>(TModel model,TViewModel viewmodel) 
where TModel : class
{
    //mapper function to return the TModel OBject.
}
4

1 に答える 1

6

これはあなたがやろうとしていることですか?

public TDest Map<TSource, TDest>(TSource viewModel)
{
    Mapper.CreateMap<TSource, TDest>();
    TDest result = Mapper.Map<TSource, TDest>(viewModel);

    return result;
}

public ActionResult MyAction(WorkLoadRationViewModel viewModel)
{
    WorkLoadRatio model = Map<WorkLoadRationViewModel, WorkLoadRatio>(viewModel);
}
于 2012-07-19T11:27:44.377 に答える