0
我試圖從web.config配置創建一個對象的實例創建實例,像這樣:從web.config中,並與依賴注入的構造與Ninject
<add name="Log4Net" type="Spm.Services.Logging.Log4NetServices.Log4NetReporting, Spm.Services" />
類型Log4NetReporting
有構造函數的參數我想注入,像這樣:
public class NLogReporting : ILogReporting
{
[Inject]
public NLogReporting(IRepository<NLogError> nLogRepository)
{
this.nLogRepository = nLogRepository;
}
}
我試着這樣做是爲了創建這個對象的實例:
var logger = Activator.CreateInstance(type) as ILogReporting;
但我得到一個異常說「沒有無參數的構造函數已被定義爲這個對象」。
理想情況下,我想使用Ninject來做到這一點,但我不知道如何。我的代碼在不同的程序集中分離,因此Ninject初始化(請參見下文)位於一個程序集(Web應用程序程序集)中,此代碼位於Services程序集中。
這裏是我的Ninject初始化代碼:
private static StandardKernel CreateNinjectKernel()
{
var kernel = new StandardKernel();
RegisterNinjectServices(kernel);
ConfigureAutoMapper(kernel);
return kernel;
}
private static void RegisterNinjectServices(IKernel kernel)
{
kernel.Bind<IRepository<NLogError>>().To<Repository<EntityDbContext, NLogError>>().InRequestScope();
}
這是可以做到的還是我只是做這一切錯了嗎?
/英戈
謝謝,戴夫!這非常有幫助! – user3428449 2015-02-27 03:56:12