Ninject 和 DataContext 处置

2023-12-31

我正在使用 Ninject 从内核检索 DataContext,我想知道 Ninject 是否自动处置 DataContext,或者他如何处理 dispose() 行为。根据我自己的经验,我知道处理数据上下文非常重要,并且每当您创建 DataContext 的直接对象(如:new DataContext())时,您都应该使用 using() 块。

因此,我的问题是:当我从内核检索 DataContext 时,我是否仍然必须使用 using() 块?或者 Ninject 可以帮我解决这个问题吗?


我正在为我的同事巴斯调查此事。我正在查看 Ninject 2 源代码(http://github.com/ninject/ninject.git http://github.com/ninject/ninject.git),并且似乎有一些生命周期管理。

当存在瞬态以外的其他作用域时,该作用域的垃圾收集将触发链接到该作用域的所有实例的停用(通过管道)。停用时,默认策略之一是 DisposableStrategy,如果实例是 IDisposable,则该策略将处置该实例!

我在 stackoveflow 上看到很多答案说 Ninject 不做任何生命周期管理,也许以前版本的 Ninject 也是如此?

但这种行为非常棘手,因为在使用注入服务时您不知道范围。因此,您不知道是否必须自己处理该对象(暂时的),或者 Ninject 会处理这个问题。

因此,服务范围的更改可能会引入错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ninject 和 DataContext 处置 的相关文章

随机推荐

  • Android 中可扩展列表视图中的图像图标

    我想在可扩展列表视图中添加图像图标 我看过他们仅在子元素中添加的教程 是否有其他方法可以在父元素中添加图像图标 任何帮助 将不胜感激 提前致谢 您还可以在 XML 中定义自己的 groupIndicator 首先定义自己的drawable
  • 如何有效地从向量C++中删除元素

    我有一个由向量 对 V1 V2 组成的向量 称为pairV1V2 其形式如下 1 2 3 938 462 4837 gt V1 V2 3 9 13 938 0472 944 81 84 93 938 84 845 那么我需要保留以下内容 1
  • 如何在 C# 中比较两个 JSON 并忽略某些键?

    我有两个需要比较的 JSON 对象 但是我想排除某些属性 有没有一种有效的方法可以做到这一点 而无需迭代所有键 我正在使用 JSON NET 它具有 JToken DeepEquals 并且非常出色 但它不允许我排除某些键 Thanks 好
  • 如何在qt中通过QSignalMapper传递参数

    我想用Qt制作一个下载器 我在使用 QSignalMapper 时遇到问题 QNetworkReply中有信号 downloadProgress qint64 qint64 我有很多下载任务 所以我使用 QSignalMapper 来处理信
  • _CRTDBG_MAP_ALLOC 不显示文件名

    我正在尝试检测内存泄漏 并且使用 make CRTDBG MAP ALLOC 宏来定位泄漏区域 所以我定义 MACRO 如下 ifdef DEBUG define CRTDBG MAP ALLOC include
  • Tomcat自行关闭

    我在 CentOS 6 5 64 位和 OpenJDK 1 7 64 上运行 Tomcat 7 0 53 我有几台服务器 偶尔 例如每周随机一次 Tomcat 会正常关闭自己 我已经研究这个问题几个月了 但找不到原因 唯一的模式似乎是很长一
  • 命名元组错误[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试使用namedtuple 将Python 对象序列化为JSON 但我收到这个错误 谷歌没有帮助 Traceback most r
  • ASP.NET MVC:在数据输入表单中搜索

    感谢您的阅读 我正在构建一个数据输入表单 我试图找出一种方法 让用户提供一个条件 例如姓氏 在员工表中搜索符合条件的所有员工 以他们可以选择正确员工的方式显示结果 然后通过该员工的 ID 返回到数据输入表单 以便他们可以完成记录并保存 Th
  • HTML2PDF 对日语 (utf8) 的支持不起作用

    对于 PHP 中的报告生成 我使用 HTML2PDF 它适用于英语 但无法为日语提供正确的输出 如何在 hHTML2PDF 库中设置 utg8 字符 有没有办法在 HTML2PDF 库中实现这一点 我得到的输出类似于 而不是日语文本 在 v
  • 在 iOS 中将日期格式化为 dd-MMM

    我一直在寻找这个但找不到它 我在 NSDictionary 中有一个包含 NSDate 的对象 现在标准的 NSDate 对象相当长 我想以 dd MMM 格式向用户显示 例如 原始日期可能是2012 04 23 00 00 00 0000
  • @-moz-document url-prefix() 的作用是什么?

    在西蒙 科里森的新中旧的响应式网页设计 https colly com v4 在CSS中 有几个这样的声明 moz document url prefix fl float left margin 12px 4px 0 0 padding
  • AFHTTPSessionManager 使用基于 SOAP 的服务

    我查了几个帖子 this https stackoverflow com questions 24181844 how to convert afnetworking service invoke to use afhttpsessionm
  • 作为 System.Net.Mail 附件的流为 0 字节

    我有一个项目 我正在使用 PDF 生成器将文件发送给用户 我们希望为用户提供将此文件附加到电子邮件的选项 但我们在同时使用 Stream 对象和附件逻辑时遇到了问题 我们从 ABCpdf 开始 它有两种保存方法 它可以保存到 Stream
  • 为什么JVM堆不断增长?

    我编写了一个简单的程序并使用 jconsole exe 来监视其堆大小 public class HeapTest public static void main String args while true Here is the res
  • 构建通知时出错

    我正在使用这个教程http www vogella com articles AndroidNotifications article html http www vogella com articles AndroidNotificati
  • 通过 jquery ajax 提交联系表单时出错

    基于此question https stackoverflow com questions 15767317 initialize javascript in php script for a contact form我不得不重写我的联系表
  • AngularJS ng-repeat 处理空列表情况

    我认为这将是一个很常见的事情 但我找不到如何在 AngularJS 中处理它 假设我有一个事件列表并想用 AngularJS 输出它们 那么这很简单 ul li event title li ul 但是当列表为空时我该如何处理呢 我想要一个
  • 为什么我收到“无法发送 GpuChannelMsg_CreateCommandBuffer”错误?

    我收到以下错误 DevTools listening on ws 127 0 0 1 49722 devtools browser e3cdef84 2a4f 4829 8cb2 4baf45efa446 0903 065243 722 E
  • strcpy() 和字符串数组

    我需要将用户的输入存储到字符串数组中 include
  • Ninject 和 DataContext 处置

    我正在使用 Ninject 从内核检索 DataContext 我想知道 Ninject 是否自动处置 DataContext 或者他如何处理 dispose 行为 根据我自己的经验 我知道处理数据上下文非常重要 并且每当您创建 DataC