C# ninject.ActivationException的ninject错误
我有ASP.NET Web应用程序,并将dll添加到项目中。 我把它粘上,我选择了尼尼特 因为Web应用程序必须有默认构造函数,所以我决定用以下方式粘合它:C# ninject.ActivationException的ninject错误,c#,dependency-injection,ninject,C#,Dependency Injection,Ninject,我有ASP.NET Web应用程序,并将dll添加到项目中。 我把它粘上,我选择了尼尼特 因为Web应用程序必须有默认构造函数,所以我决定用以下方式粘合它: public IPlayerDb PlayerDb { get; set; } public Logon() { Global.Kernel.Inject(this); } IPlayerDb位于外部DLL库“Contracts.DLL”中 实现IPlayerDb的PlayerDb类位于其他dll中:“DataAccess.d
public IPlayerDb PlayerDb { get; set; }
public Logon()
{
Global.Kernel.Inject(this);
}
IPlayerDb位于外部DLL库“Contracts.DLL”中
实现IPlayerDb的PlayerDb类位于其他dll中:“DataAccess.dll”
在DataAccess.dll中,存在类生成粘合:
public class Bindings : NinjectModule
{
public override void Load()
{
Bind<IDbConfig>().To<DbConfig>();
Bind<IPlayerDb>().To<PlayerDb>();
}
}
公共类绑定:NinjectModule
{
公共覆盖无效负载()
{
绑定()到();
绑定()到();
}
}
当我在VisualStudio重新启动后使用我的项目时(我想也可以使用IIS express),这是可以的。
但如果我再次开始调试应用程序,则会显示以下错误消息:
激活IPlayerDb时出错
没有匹配的绑定可用,并且类型不可自绑定。
激活路径:
2) 将依赖项IPlayerDb注入Logon类型的属性PlayerDb
1) 请求登录\u aspx
Ninject.dll中出现“Ninject.ActivationException”类型的异常,但未在用户代码中处理该异常
那么,有什么问题吗。看来我都是手工做的。需要建议。哦,好的,我不知道Web表单生命周期和依赖项解决方案。由于问题仅在调试时出现,并且声明缺少绑定,因此问题很可能仍然存在于将ninject集成到应用程序中的过程中。您很可能创建了多个内核,但没有以正确的方式初始化它(初始化=>创建绑定/加载模块)。否则就不可能有一个内核缺少
IPlayerDb
的绑定。当然我知道这里有一个问题。但我都是手工做的。所以手动是错误的,我发现了问题的核心:私有静态IKernel CreateKernel()并没有返回加载到我的应用程序中的所有dll