问题标签 [ninject-extensions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4396 浏览

c#-4.0 - Ninject.Extensions.Logging.Log4net 意外行为

我在使用通过 NuGet 安装的 Ninject 的 (2.2.1.4) Extensions.Logging.Log4net (2.2.0.4) 的 Log4Net (1.2.10) 时遇到问题。

当我直接访问 Log4Net 时:

结果是:

但是,当通过 Ninject 访问记录器时:

NinjectLoggerTest 就是这样:

出乎意料的是,结果是:

更糟糕的是,当使用 ILogger 的 Trace 方法时,mscorlib.dll 中第一次出现“System.FormatException”类型的异常

难道我做错了什么?我该如何解决这个问题?

TIA

0 投票
1 回答
140 浏览

ninject - 拦截 ABase 类,而实现基类 A 和独立接口 IC 的 Child 类用于绑定

拦截一个 ABase 类,而实现基类 A 和一个独立接口 IC 的 Child 类用于绑定。

当我在 A 中有一个属性将在代理对象中设置为 null 时,问题就出现了,而在代理对象的实例中,该属性在调试视图中具有正确的值。

确切地说,我将链接添加到 包含实际代码的要点https://gist.github.com/424637484504b89789d6 。

如果有人可以帮助我,我将不胜感激。

干杯,贾尼

0 投票
2 回答
1547 浏览

wcf - 使用 WCF 服务的 Ninject Di 绑定

我最近创建了一个 WCF 服务库。我打算在 IIS 中托管它。由于我想重用我的存储库层,我决定在我的 WCF 服务中也使用 Ninject(我在解决方案的其他项目中使用它)。

我安装了 Ninject Wcf 扩展。我使用 svc 文件中的 NinjectServiceHostFactory 对其进行了配置。我添加了一个 Global.asax 文件来覆盖从 NinjectWcfApplication 继承的 CreateKernel() 但我不确定我是否正确使用了绑定。我首先开始:

但我很快意识到这不起作用,因为没有数据保存到我的数据库中。WCF 服务似乎不使用 ASP.NET 管道。我继续尝试了这两种方法,只是为了查看我的数据是否已提交到数据库:

没运气。然后我决定尝试:

这可行,但我不希望进入 WCF 服务的每个请求都共享我的数据库上下文。然后我做了一些研究,发现了以下方法:

这有效,但它正确吗?我想要类似于 MVC 应用程序的 InRequestScope 的东西。对服务的每个请求都应该有自己的数据库上下文。

0 投票
1 回答
742 浏览

visual-studio-2010 - Ninject 引导程序没有可用的源

我已通过 nuget 将 Ninject Mvc Extensions 添加到我的项目中,并且已将 NinjectMVC3 文件放入 App_Start 文件夹中。如果我进入我的源代码,“无可用源”页面会出现在我面前。

问题是我无法进入代码行的下一步。我必须在自己的代码中找到下一步并放置断点。

它正在寻找 NinjectDependencyResolver.cs 但当前路径中没有这样的文件,因为它已在以下信息中显示。

下面是来自 Visual Studio 的源文件信息。

我怎样才能摆脱这个问题?

0 投票
1 回答
1662 浏览

wcf - 使用 Ninject 扩展将依赖项注入 MVC3 WCF 服务

我有一个 MVC3 应用程序,它应该通过 WCF 公开一些功能。其中一些函数具有依赖关系,我想使用 Ninject 注入它们,但我必须在这里遗漏一些明显的东西,因为这不起作用。谁能给个提示?这是我所做的:

1) 在我的 MVC3 应用程序中,我通过 nuget 添加了Ninject Wcf 扩展

2)我添加一个.svc 文件,如:

3)我添加了相应的代码(这只是一个测试,所以我在这里使用了一个虚拟接口):

4) 在 App_Start/ NinjectMVC3.cs 中

现在,当我访问 svc 时,我从 Ninject 得到以下异常:

System.ArgumentNullException 未被用户代码处理
Message=Cannot null 参数名称:root Source=Ninject
ParamName=root StackTrace:在 C:\Projects\Ninject\Maintenance2 中的 Ninject.Infrastructure.Ensure.ArgumentNotNull(对象参数,字符串名称)。 2\ninject\src\Ninject\Infrastructure\Ensure.cs:第 20 行 Ninject.ResolutionExtensions.GetResolutionIterator(IResolutionRoot 根,类型服务,Func2 constraint, IEnumerable1 个参数,Boolean isOptional,Boolean isUnique) 在 c:\Projects\Ninject\Maintenance2.2\ninject\src\Ninject\Syntax\ResolutionExtensions.cs:line 258 at Ninject.ResolutionExtensions.Get[T](IResolutionRoot root, IParameter[ ] 参数)在 c:\Projects\Ninject\Maintenance2.2\ninject\src\Ninject\Syntax\ResolutionExtensions.cs:line 37 at Ninject.Extensions.Wcf.NinjectServiceHostFactory.CreateServiceHost(Type serviceType, Uri[] baseAddresses) in c :\Projects\Ninject\Maintenance2.2\ninject.extensions.wcf\src\Ninject.Extensions.Wcf\NinjectServiceHostFactory.cs:System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses) 处的第 48 行System.ServiceModel.ServiceHostingEnvironment.HostingManager。CreateService(String normalizedVirtualPath) 在 System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(String normalizedVirtualPath) 在 System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)

0 投票
1 回答
997 浏览

generics - 如何使用 Ninject 检索通用接口的所有绑定

使用 Ninject 2.2,我有以下失败的测试(简化):

前两个断言通过,所以我知道类型本身被正确绑定,但我无法像我想要的那样检索开放通用接口的所有绑定。这是可能吗?

0 投票
1 回答
1436 浏览

ninject - 将 Ninject 模块添加到现有内核

我有一个场景,我在应用程序中有一堆功能,这些功能是根据网络上存在的网络设备启用和禁用的。我正在使用 Ninject 在应用程序中管理我当前的功能树。

我想要做的是能够在应用程序运行时向我的内核添加和删除一组绑定。我想使用类似 Ninject 模块的东西来将它们捆绑在一起,但是我不知道如何从现有内核中添加/删除模块。

任何人都知道如何做到这一点或有更好的选择?

0 投票
3 回答
763 浏览

c# - 在 .NET RESTful 应用程序中使用 Ninject?

我是 RESTful 服务的新手,并且有一段时间不用使用 IoC 重新连接堆栈,所以这给了我一个轻微的打击。

我有一个看起来像这样(简化)的 WCF 服务:

好吧,这很简单。我确实添加了一个构造函数参数,因为调用了 BLL TXESIIDService 方法。

所以现在,我已经更改了 Ninject 的全局文件,现在看起来像这样:

并添加了我的模块:

为了排除故障,我添加了自己的 NinjectServiceHostFactory

当我像这样运行它时,我收到一条错误消息:

不能为空。

显然我在这里遗漏了一些东西,但我不知道是什么。在这一点上,我已经尝试了各种方法,我看到的大多数示例都是针对 WCF 服务的,而我设法找到的 RESTful 服务对于那些熟悉的 w/Ninject 或 IoC 常客来说有点太适合了。

此外,在我的业务和数据层(使用实体框架)中,我也希望在那里实现 Ninject,最好的做法是将这些层单独连接起来还是可以在一个地方完成所有操作?

谢谢。

更新 1 我已经更正了绑定问题,但这仍然对我造成轰炸。我正在使用 Ninject.Extensions.Wcf 并且它正在寻找 NinjectWcfApplication.cs 文件,这似乎根本不正确。我使用 NuGet 为 Ninject 包含一个包,这可能是版本问题吗?

0 投票
1 回答
820 浏览

wcf - Ninject 与 WCF 和拦截(用于 AOP)

我一直在尝试让 ninject 在 wcf 中工作,使用 wcf 扩展和使用 dynamicproxy2 扩展的拦截。我基本上已经创建了一个 Time 属性,并让它在一个基本场景中工作。我遇到麻烦的地方是在 ninject 模块中我使用构造函数参数创建服务绑定:

一切正常,但 Time 属性不会触发我的 Service1 或 MyDependency 中的任何内容。

时间属性是遍布互联网的标准属性。唯一真正的另一段代码是 CreateKernel 方法是 global.asax,它看起来像这样:

谢谢你的帮助!

马特

编辑 12/12/2011:根据要求,我在下面添加了更多详细信息:整个 wcf ninject 模块:

global.asax中的create kernel方法如上,global.asax继承自NinjectWcfApplication。

服务方法如下所示:

这有帮助吗?

由于删除了“WithConstructor”参数,时间拦截属性将在 GetMyString 上触发,但不会在 GetData 上触发。

马特

0 投票
1 回答
1470 浏览

ninject - Ninject 拦截器

我正在使用 caliburn.micro 框架开发 WPF 桌面应用程序,并且我想配置 ninject 拦截器以便可以拦截方法调用。我想这样做是为了在一个集中的地方处理异常,这样我的代码周围就没有很多 try-catch 块。

我无法完成这个,因为每次我用 ninject 连接所有东西时,系统都会抛出异常。

所以这里有一些代码:

AppBootstrapper 配置方法如下所示:

现在我的拦截器中的拦截方法:

视图模型中的方法如下所示:

这就是拦截器应该如何工作的方式。但它不起作用,每次我运行程序,ninject 尝试将 SomeViewModel 的实例注入 ISomeViewModel,程序执行失败,这是抛出的异常(和堆栈跟踪): http://pastebin .com/qerZAjVr

希望您能帮我解决这个问题,在此先感谢您。