- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Entity Framework 构建一个 MVC3 应用程序,其中几乎所有操作都只允许授权用户使用。因此,我经常需要引用成员实体。我已经尝试了缓存成员的不同方法,并提出了一种非常快的方法。但我想对我正在做的事情的风险/缺点提出一些建议/观点。
我已经定义了一个工厂类,用于检索在 Ninject 中“注册”的 Member 实例,这样我就可以在需要的地方使用它。 Ninject 绑定(bind)是“ session 范围的”(我稍后会解释)。工厂方法首先检查 Session 以查看它是否包含先前创建的 Member 实例。如果 Session 没有,例程通过 EF 从底层数据库创建一个实例,将值存储在 Session 中并返回它。
因为对 Member 实例的一些访问是 EF 调用,所以我必须确保 EF 对象上下文也在 session 范围内(我学会了针对最初在不同上下文下创建的 Member 实例调用 EF 例程的艰难方法工作太好了)。由于工厂和对象上下文是通过 Ninject 创建的,因此我必须为 Ninject 定义一个 Session 范围。
我找到了一个代码片段 here我可以对其进行修改以满足我的需要。但这是一个如此简单的片段,我想知道是否有原因 Ninject(或 Ninject MVC)没有“ native ”提供该功能。这让我想知道我是否正在通过我正在做的事情来找麻烦。
我确实意识到在 Session 中存储东西有很多方面你必须围绕它进行编程,其中最主要的是存储的对象可以随时“消失”(即,你总是必须有一种方法来重新创建当你得到它时它)。但是,虽然这增加了足够的复杂性,以至于我不想为很多对象做这件事,但为单个 Member 对象做这件事并不是那么困难。
无论如何,对于 session 范围的 Ninject 绑定(bind)和在 MVC 应用程序的 Session 中存储 EF 实体的建议和反馈将不胜感激。
最佳答案
Ninject 本身没有这样的范围有几个原因:
关于asp.net-mvc - Ninject、MVC 和 session 范围 : Reasonable Practice?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5987902/
有人在 monodroid 项目中使用 ninject 吗? 如果是这样,将不胜感激有关实现这一目标的任何指示/细节。 最佳答案 我还没有尝试在 Mono For Android 中使用 Ninjec
我找到了this article关于 Ninject 早期版本中的上下文变量。我的问题有两个方面。首先,如何使用 Ninject 2 获得这种行为?其次,上下文变量是否沿着请求链传递?例如,假设我想替
我有一个场景,只要一个对象上的方法返回 true,多个并发 Web 请求就应该重用一个对象。有问题的对象是线程安全的。 所以我需要当前范围内的对象来确定它是否仍在范围内。使用 Ninject 完成此任
我刚刚使用 Ninject 3 更新了我的应用程序。将 App_Start 中的文件从 NinjectMVC3 更改为 NinijectWebCommon.cs。移动了我的文件,更新了 DLLs..
我在 MVC4 应用程序中使用 Ninject 进行 DI 和 Ninject.MVC3 扩展,特别是版本 3.0.0.6。 阅读documentation在 Ninject 的 wiki 上,使用
如何绑定(bind)InitializerForXXX (非通用实现)到 IInitializer (通用接口(interface))使用 Ninject Conventions以便请求 IIniti
我正在开发一个框架扩展,它使用 Ninject 作为 IoC 容器来处理动态注入(inject),但是我在尝试解决如何实现这一点时遇到了一些麻烦。 我的框架的期望是您将传递 IModule(s)所以它
我确信这是一个愚蠢的问题,因为我假设答案是“当对象被 Ninject 实例化时”......但我想仔细检查...... 为了提供更多关于我为什么问这个问题的背景信息,我有一个实现 NinjectHtt
与其手动绑定(bind)每个类,不如推荐哪些方法和模式(如果有)来自动设置绑定(bind)? 例如,绝大多数绑定(bind)看起来像这样: Bind.To(); 一旦模块变大,您最终可能会得到 100
我试图找到一种将构造函数参数传递给子类的构造函数的方法。 这些对象是不可变的,所以我更喜欢使用构造函数参数。 我遇到的问题是 ConstructorArgument 不继承到子实例化,并且以下语句不可
我正在尝试为事件代理/消息代理的开发找到最新的 Ninject 扩展。 我至少可以找到 3 个:messagebroker , weakeventmessagebroker和 bbveventbrok
我有一个 WebApi 服务,我正在尝试使用 Ninject BindHttpFilter 添加身份验证。 使用 BindHttpFilter 允许我将身份验证过滤器绑定(bind)到特定属性。 Au
Autofac 自动为 Func 生成工厂;我什至可以传递参数。 public class MyClass { public MyClass(Func a, Func b) {
我有一个类需要为其类中的一个方法使用 IRepository。 理想情况下,我希望避免将这种依赖关系解析到类的构造函数中,因此我在 Ninject 中发现了方法级注入(inject),并且想知道这是如
我看到了枚举给定服务(类型)的绑定(bind)列表的方法,但我找不到返回已加载模块中绑定(bind)的所有内容列表的方法。我正在寻找类似Kernel::IEnumerable GetAllRegist
对于初学者,我正在使用这个模块: public class AutoMapperModule : NinjectModule { public override void Load()
我想知道 ninject 是否有可能拦截我类的私有(private)方法。我正在尝试进行一些 aop 编程以动态注入(inject)日志记录机制。 最佳答案 不幸的是,所有要拦截的方法都必须是virt
我是 Ninject 的新手,正在努力让这个测试通过。 (此测试通过 Autofac,但行为在 Ninject 中似乎有所不同)。 [Test] public void RegisterInstanc
我在一个小项目中使用过 Ninject,但现在正在将一个较大的 Web 应用程序转换为 mvc,并且需要有关使用 Ninject 的帮助。在新的解决方案中,我拥有 mvc 站点并将一些功能拆分到单独的
目前,我正在使用 ninject 执行以下绑定(bind)的命令模式: kernel.Bind>().To(); kernel.Bind>().To(); kernel.Bind>().To(); 我
我是一名优秀的程序员,十分优秀!