Ninject 无法创建对象。从内核获取时抛出异常
Ninject can't create object. Exception thrown when getting from kernel
当我尝试使用 kernel.Get
创建新的 IRepository<Tag>
时,Ninject 抛出异常。我是否以正确的方式使用 Ninject 并且绑定设置是否正确?
class的方法NinjectDependencyResolver
:
private void AddBindings()
{
var mapperConfiguration = new MapperConfiguration(cfg =>
{
cfg.AddProfile(new TagProfile());
});
var mapper = mapperConfiguration.CreateMapper();
_kernel.Bind<BlogDbContext>().ToSelf().InRequestScope();
_kernel.Bind<IRepository<Tag>, Repository<Tag>>();
_kernel.Bind<IMapper>().ToConstant(mapper);
var repository = _kernel.Get<IRepository<Tag>>(); // exception thrown here
_kernel.Bind<ITagService, TagService>();
}
Class Repository
:
`public class Repository<T> : IRepository<T> where T : class
{
private readonly BlogDbContext _db;
public Repository(BlogDbContext db)
{
_db = db;
}
}`
P.S.。
我不知道这是否重要,但它的接口存储库位于同一个程序集中,并且 Ninject 在另一个注册。
您的绑定语法不正确。变化:
_kernel.Bind<IRepository<Tag>, Repository<Tag>>();
收件人:
_kernel.Bind<IRepository<Tag>>.To<Repository<Tag>>();
当我尝试使用 kernel.Get
创建新的 IRepository<Tag>
时,Ninject 抛出异常。我是否以正确的方式使用 Ninject 并且绑定设置是否正确?
class的方法NinjectDependencyResolver
:
private void AddBindings()
{
var mapperConfiguration = new MapperConfiguration(cfg =>
{
cfg.AddProfile(new TagProfile());
});
var mapper = mapperConfiguration.CreateMapper();
_kernel.Bind<BlogDbContext>().ToSelf().InRequestScope();
_kernel.Bind<IRepository<Tag>, Repository<Tag>>();
_kernel.Bind<IMapper>().ToConstant(mapper);
var repository = _kernel.Get<IRepository<Tag>>(); // exception thrown here
_kernel.Bind<ITagService, TagService>();
}
Class Repository
:
`public class Repository<T> : IRepository<T> where T : class
{
private readonly BlogDbContext _db;
public Repository(BlogDbContext db)
{
_db = db;
}
}`
P.S.。 我不知道这是否重要,但它的接口存储库位于同一个程序集中,并且 Ninject 在另一个注册。
您的绑定语法不正确。变化:
_kernel.Bind<IRepository<Tag>, Repository<Tag>>();
收件人:
_kernel.Bind<IRepository<Tag>>.To<Repository<Tag>>();