2

私は現在、大規模なASP.NET MVC 5プロジェクトに取り組んでおり、MVC用のNinjectフレームワークを使用してDIを実装しています。実際にNinjectを使用するのは初めてのことですが、AutoMap 5.2.0を使用するベストプラクティスが何であるかを知るためには、非常に必要です。NinjectでAutoMApper.5.2.0を使用するには?

グーグルでは、旧バージョンのAutoMapperに新しいバージョンで廃止予定のメソッドがあることを示すいくつかの例を見つけました。

私のソリューションは、次のプロジェクトで構成されている:

  1. コア
  2. データ
  3. サービス
  4. ウェブ

私はこのlinkで同じプロジェクトに取り組んでいます。

+0

を使用してのベストプラクティスのようなものはありません、あなたのクラスにAutoMapper.IMapperを注入し、読んで[ここ](http://meta.stackoverflow.com/questions/265928/is-a-best-practice-question-off-topic)。どのようにして実装する必要があるか、それを必要とするかのユースケースとビジネスニーズのみがあります。詳細をいくつか教えていただければ、具体的な回答を得られます。 – kayess

+0

ご協力いただきありがとうございます。これは私が取り組んでいるプロジェクトです http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pattern-and-dep/ – Morz

+0

どのレイヤでマッピングを行いますか? – kayess

答えて

4

NinjectでAutoMapperに設定する必要があるものが3つあります。

  1. バインド()AutoMapper.IMapper
  2. そのサービスのためにNinjectを使用するAutoMapperを指示し、そして
  3. は、あなたのマッピングでAutoMapperを初期化します。ここ

私は、この目的のために使用NinjectModuleです:

public class AutoMapperModule : NinjectModule 
{ 
    public override void Load() 
    { 
     Bind<IMapper>().ToMethod(AutoMapper).InSingletonScope(); 
    } 

    private IMapper AutoMapper(Ninject.Activation.IContext context) 
    { 
     Mapper.Initialize(config => 
     { 
      config.ConstructServicesUsing(type => context.Kernel.Get(type)); 

      config.CreateMap<MySource, MyDest>(); 
      // .... other mappings, Profiles, etc.    

     }); 

     Mapper.AssertConfigurationIsValid(); // optional 
     return Mapper.Instance; 
    } 
} 

その後、あなただけの代わりに静的Mapper

+0

btw、これはAutoMapper 4.2.1です。私はそれがあまりにもv5で異なっていないことを願っています –

+1

ありがとう、あなたの答えはいくつかの神秘的なものの意味を作るのに役立ちました。 – Morz

関連する問題