问题标签 [ninject]

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 投票
7 回答
19228 浏览

ninject - Ninject 示例应用程序?

我想开始使用依赖注入和 IOC,我想更多地使用 Ninject。

有没有使用 Ninject 编写的带有源代码的好的应用程序,我可以将其作为参考?

0 投票
9 回答
13799 浏览

c# - 在像架构这样的插件中使用 Ninject

我正在学习 DI,最近做了我的第一个项目。

在这个项目中,我实现了存储库模式。我有接口和具体的实现。我想知道是否可以将我的接口的实现构建为“插件”,即我的程序将动态加载的 dll。

所以程序可以随着时间的推移而改进,而不必重建它,您只需将 dll 放在“插件”文件夹中,更改设置,瞧!

这可能吗?Ninject 可以帮助解决这个问题吗?

0 投票
1 回答
1665 浏览

asp.net-mvc - ASP.NET、Ninject 和 MVC:性能负载问题

问题描述:该模型一次只适用于一个用户。一旦我一次获得多个用户,我就会遇到与未关闭 SqlDataReader 有关的严重错误。当我像这样关闭延迟加载时:

persistenceModel.Conventions.OneToManyConvention = (prop => prop.SetAttribute("lazy", "false"));

很好,但性能很慢。这使用 MVC Beta 1

有什么想法吗?

下面是我的全局 ASAX 的片段以及我的 SessionFactory 初始化代码。

*********** 这是我的 GLOBAL.ASAX ********

***** 这是我的 NHibernateHelper.cs ******

0 投票
0 回答
885 浏览

asp.net - 在 asp.net 会话状态下注入

我正在使用框架集成中的 BasePage 和 BaseMaster 在 Web 应用程序上使用 Ninject。我想做的是注入一个对象并在每个会话上创建一个新实例。我查看了 OnePerRequest 行为,它很接近,但并不完全。我正在做的是执行大量计算,这些变量保存在注入页面的对象中。我需要这些对象保留以进行回发,但是每次用户“访问”该站点时,我都想要一个新的对象实例。我最初的想法是以某种方式使用 Asp.net Session 对象来存储回发之间的值,这是我在 Ninject 之前会这样做的方式(只是将对象存储在会话中。但我想在如果可以的话,正确的方法。我 我愿意接受其他建议。我考虑过使用单例,但每个用户都需要自己的对象副本,否则他们会相互计算。

我希望这很清楚,对于使用现有行为或创建自己的行为的任何建议,我将不胜感激。也许使用应用程序缓存或内置的 ASP.NET 缓存可以工作。

谢谢

乔什

0 投票
1 回答
635 浏览

.net - 使用依赖注入框架的优秀开源项目?

有谁知道开源项目实现Ninject 框架或另一个,我之前没有使用过 DI 框架,Ninject 引起了我的注意,因为您不需要在 XML 文件中进行配置。

在查看已经实现的代码时,我倾向于掌握更多。

如果你知道另一个使用不同 DI 框架的好项目?

谢谢,

0 投票
2 回答
3412 浏览

c# - Ninject:通过类型解析对象_and_注册名称/标识符

我正在寻找一种方法来用 Ninject 做这样的事情:

(来自http://msdn.microsoft.com/en-us/library/cc440957.aspx

是否可以?

0 投票
1 回答
2502 浏览

c# - Ninject OnePerRequestBehaviour 似乎无法正常工作?

我一直在我的网络应用程序中使用 Ninject 作为我的 IOC。这很棒,我认为它工作得很好,但是我一直在尝试将一些接口/类注册为 OnePerRequestBehaviour,但它似乎并没有真正使用这种行为。代码运行正确,但在我的一个类中,它延迟从数据库加载页面信息,然后一旦加载它就不需要访问数据库。

我的问题是延迟加载的属性将在我的第一个请求中加载,然后当我请求下一页时使用该类的相同实例。我知道这是因为该类没有再次实例化并且已经设置了延迟加载的属性。

此代码在我的模块类中:

然后在继承自 NinjectHttpApplication 的 Global.asax 中,我有以下内容:

对 CmsService 的第一次调用是在 global.asax 中以及在 authenticate_request 上进行的:

上面的 GetCurrentPage() 代码:

因此,您可以看到 _currentPage 变量仅在之前未设置的情况下才被加载,这应该是每个请求一次,但是 Ninject 似乎并没有为每个请求创建 CmsService 它似乎是为任意数量的时间。

Deos 任何人都知道为什么这对我不起作用或它肯定起作用的任何示例代码?

谢谢

0 投票
1 回答
1320 浏览

c# - 在给定的场景中使用 ninject/autofac

我有一些提供者,比如说 -

这些提供商中的每一个都可以给我一个会话:

目前,我通过查看提供者、实例化类型和注入 URL(手动)来实例化“命名”会话。

我可以使用会话工厂,它可能必须理解 url 并返回正确的会话。

有没有办法用 ninject/autofac 更优雅/更简单地处理这个问题?

0 投票
3 回答
11135 浏览

c# - NInject:你把你对内核的引用保存在哪里?

我在一个新的 Web 应用程序上使用 NInject,有两件事我不清楚:

  1. 我不需要保留对内核的引用(会话/应用变量)以确保 GC 不会收集我的所有实例吗?例如,如果我指定 .Using() 然后收集 Kernel 对象,我的所有“单例”不也被收集了吗?

  2. 如果我确实需要保留对 Kernel 对象的引用,我如何允许传递给 WithArguments() 的参数发生变化,或者这是不可能的。

0 投票
2 回答
1306 浏览

c# - 在 NInject 中实现 OnePerSessionBehavior

我想为 NInject (v1.0) 创建一个 OnePerSessionBehavior,而且我大部分时间都在工作。剩下的唯一问题是如何使用 .WithArguments() 传递新的参数,因为每个新会话都要求容器提供一些东西。现在我将容器的引用保留为应用程序变量,因此该模块只加载一次,所以当然绑定只发生一次。

例如,以下为每个新会话返回 'Something' 的各个实例,但传递给所有会话的构造函数参数是相同的 DateTime。