2017-01-07 20 views
1

私はUnityの一部のコードをDIで構築されたASPNETコアを使用して変換していますが、私は(インスタンス)を登録する必要があります。それをどうやってやることができますか? ASPNETコアのレジスタインスタンスDI

var mapperConfig = new MapperConfiguration(cfg => 
    { 
     cfg.AddProfile<AutoMapperBootstrapper.ServicesProfile>(); 
     cfg.AddProfile<AutoMapperBootstrapper.WebApiProfile>(); 
     cfg.AddProfile<AutoMapperBootstrapper.WebProfile>(); 
    }); 

    // register mapper config 
    var mapper = mapperConfig.CreateMapper(); 

はユニティでは私がやった:

unityContainer.RegisterInstance(mapper); 

しかし、私はコアでそれを行う方法がわからないです。

答えて

3

IServiceCollectionのファクトリパターンを使用できます。

services.AddSingleton(serviceProvider => { 
    var mapperConfig = new MapperConfiguration(cfg => 
    { 
     cfg.AddProfile<AutoMapperBootstrapper.ServicesProfile>(); 
     cfg.AddProfile<AutoMapperBootstrapper.WebApiProfile>(); 
     cfg.AddProfile<AutoMapperBootstrapper.WebProfile>(); 
    }); 
    return mapperConfig.CreateMapper(); 
}); 

それとも

services.AddSingleton(mapper);

+0

どうRegisterType' 'は? – madjack

+0

説明できますか? – Kalten

+0

ソーリー、私の間違い。間違って理解しました。今はOKです。 – madjack

関連する問題