草庐IT

ninject-2

全部标签

c# - 如何使用Ninject

我今天一直在尝试使用Ninject,并有几个问题。首先,我需要在要使用注入(inject)的所有构造函数上使用Inject属性。这似乎是一个很la脚的设计吗?我是否需要创建一个内核,然后在注入(inject)类中传递的所有地方都使用它? 最佳答案 FirstofalldoIneedtousetheInjectattributeonallconstructorsthatIwanttouseinjectionfor.Thisseemslikeareallylamedesign?不,您实际上根本不需要这样做。由于您使用ASP.NETMVC

c# - WebAPI 2.1 中的 Ninject 错误 - 确保 Controller 具有无参数公共(public)构造函数

我的WebAPI项目中安装了以下包及其依赖项:Ninject.Web.WebApiNinject.Web.WebApi.OwinHost我将其纯粹作为一个web-api项目来运行。没有MVC。当我运行我的应用程序并将POST发送到AccountController的Register操作时,我收到以下错误返回:{"message":"Anerrorhasoccurred.","exceptionMessage":"Anerroroccurredwhentryingtocreateacontrolleroftype'AccountController'.Makesurethatthecon

c# - WebAPI 2.1 中的 Ninject 错误 - 确保 Controller 具有无参数公共(public)构造函数

我的WebAPI项目中安装了以下包及其依赖项:Ninject.Web.WebApiNinject.Web.WebApi.OwinHost我将其纯粹作为一个web-api项目来运行。没有MVC。当我运行我的应用程序并将POST发送到AccountController的Register操作时,我收到以下错误返回:{"message":"Anerrorhasoccurred.","exceptionMessage":"Anerroroccurredwhentryingtocreateacontrolleroftype'AccountController'.Makesurethatthecon

c# - Ninject WithConstructorArgument : No matching bindings are available, 并且该类型不可自绑定(bind)

我对WithConstructorArgument的理解可能是错误的,因为以下内容不起作用:我有一个服务,我们称它为MyService,其构造函数采用多个对象和一个名为testEmail的字符串参数。对于这个字符串参数,我添加了以下Ninject绑定(bind):stringtestEmail="test@example.com";kernel.Bind().To().WithConstructorArgument("testEmail",testEmail);但是,当执行下面这行代码时,我得到了一个异常:varmyService=kernel.Get();这是我得到的异常:Error

c# - Ninject WithConstructorArgument : No matching bindings are available, 并且该类型不可自绑定(bind)

我对WithConstructorArgument的理解可能是错误的,因为以下内容不起作用:我有一个服务,我们称它为MyService,其构造函数采用多个对象和一个名为testEmail的字符串参数。对于这个字符串参数,我添加了以下Ninject绑定(bind):stringtestEmail="test@example.com";kernel.Bind().To().WithConstructorArgument("testEmail",testEmail);但是,当执行下面这行代码时,我得到了一个异常:varmyService=kernel.Get();这是我得到的异常:Error

c# - 输入 : How to bind an open generic with more than one type argument?

我正在使用Ninject2.2,我正在尝试为一个采用两个类型参数的开放泛型设置绑定(bind)。根据这个answer通过qes,绑定(bind)的正确语法IRepository至Repository这是:Bind(typeof(IRepository)).To(typeof(Repository));如果IRepository,上述语法将完美运行只接受一个类型参数,但如果需要更多类型参数则中断(给出Usingthegenerictype'Repository'requires2typearguments编译时错误。)如何绑定(bind)IRepository至Repository?谢谢

c# - 输入 : How to bind an open generic with more than one type argument?

我正在使用Ninject2.2,我正在尝试为一个采用两个类型参数的开放泛型设置绑定(bind)。根据这个answer通过qes,绑定(bind)的正确语法IRepository至Repository这是:Bind(typeof(IRepository)).To(typeof(Repository));如果IRepository,上述语法将完美运行只接受一个类型参数,但如果需要更多类型参数则中断(给出Usingthegenerictype'Repository'requires2typearguments编译时错误。)如何绑定(bind)IRepository至Repository?谢谢

c# - 使用 Ninject 填充 Log4Net 依赖

我在我的应用程序中使用Ninject作为DI容器。为了松散地耦合到我的日志记录库,我使用了这样的接口(interface):publicinterfaceILogger{voidDebug(stringmessage);voidDebug(stringmessage,Exceptionexception);voidDebug(Exceptionexception);voidInfo(stringmessage);...yougettheidea我的实现是这样的publicclassLog4NetLogger:ILogger{privateILog_log;publicLog4NetLo

c# - 使用 Ninject 填充 Log4Net 依赖

我在我的应用程序中使用Ninject作为DI容器。为了松散地耦合到我的日志记录库,我使用了这样的接口(interface):publicinterfaceILogger{voidDebug(stringmessage);voidDebug(stringmessage,Exceptionexception);voidDebug(Exceptionexception);voidInfo(stringmessage);...yougettheidea我的实现是这样的publicclassLog4NetLogger:ILogger{privateILog_log;publicLog4NetLo

c# - 在类似架构的插件中使用 Ninject

我正在学习DI,最近做了我的第一个项目。在这个项目中,我实现了存储库模式。我有接口(interface)和具体实现。我想知道是否可以将我的接口(interface)的实现构建为“插件”,我的程序将动态加载的dll。因此该程序可以随着时间的推移而改进而无需重建它,您只需将dll放在“插件”文件夹中,更改设置即可!这可能吗?Ninject可以帮助解决这个问题吗? 最佳答案 同时SeanChambers'solution在您控制插件的情况下有效,在插件可能由第三方开发并且您不希望它们必须依赖于编写ninject模块的情况下无效。使用Con