4

Ninjectを介してすべてのオブジェクトをインスタンス化するようにAutoMapperをセットアップしようとしています。global.asaxファイルに次のコードがあります

Mapper.Configuration.ConstructServicesUsing(x => kernel.Get(x));

そして例として、私は次のマッピングを持っています

Mapper.CreateMap<TestModel, IndexViewModel>();

ただし、これは機能していないようです。'IndexViewModel'にデフォルトのコンストラクターがないというエラーが表示されます。

マッピングでninjectを使用するようにautomapperに明示的に指示することで、マッパーを機能させることができます。

Mapper.CreateMap<TestModel, IndexViewModel>().ConstructUsingServiceLocator();

ただし、マッピングごとにこれを行う必要はありません。私は何かが足りないのですか?

4

1 に答える 1

1

初期化コードのどこかにこれを行う関数を作成するだけです

void CreateMapWithServiceLocator<T1,T2>()
{
     Mapper.CreateMap<T1,T2>().ConstructUsingServiceLocator();
} 
于 2013-01-18T08:51:42.133 に答える