Ninject 2.2 多重绑定

2024-05-03

我最近将 ASP.NET MVC 3 应用程序更新为 Ninject 2.2。

以前,我的主应用程序中有以下接口来实现绑定:

Bind(typeof(IMyInterface<>)).To(typeof(MyImplementation<>)).InRequestScope();

此外,我的主应用程序正在加载另一个程序集中的以下内容:

var arg = new ConstructorArgument("info", "something");
Bind<IMyInterface<MyClass>>().To<MyImplementation<BlogComment>>().WithParameter(arg);

这以前工作得很好,并且更具体的实现(带有参数的实现)正在被认可。但是,当我升级到 Ninject 2.2 时,我收到以下错误:

Error activating IMyInterface{MyClass}
More than one matching bindings are available.
Activation path:
 2) Injection of dependency IMyInterface{MyClass} into parameter myParam of constructor of type SomeOtherClass
 1) Request for IMyInterface

Suggestions:
 1) Ensure that you have defined a binding for IMyInterface{MyClass} only once.

从 2.0 到 2.2 进行了哪些更改导致了此问题?是否有解决方法?


Ninject 2.2 确保解析实例时仅存在一个匹配的绑定。 2.0 返回第一个匹配绑定的实例,忽略还有其他绑定。但是,如果仅请求一个绑定,则拥有多个绑定反映了错误的配置,并且可能导致难以检测到意外行为。

但我认为应该有可能用更具体的绑定来推翻开放的通用绑定。我一定会研究它,它将被添加到错误修复版本或下一个主要版本中。

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

Ninject 2.2 多重绑定 的相关文章

  • MVC 将 PartialViewResult 渲染为字符串

    免责声明 我编辑了问题 因为我改变了过程 但它并没有改变任何问题 我正在尝试获得一个PartialViewResult呈现为字符串 我尝试使用RenderRazorViewToString这个问题的方法将视图渲染为字符串 https sta
  • Asp.NET MVC 应用程序中的静态类

    我想知道是否静态类 in an ASP NET MVC应用程序可能是多次初始化 我最初设计了我的应用程序 以便静态组件可以从数据库中获取一些内容并用作缓存 并且我向从构造函数调用的类添加了刷新方法 刷新方法也可通过应用程序的管理部分使用 在
  • ASP.NET MVC 中的访问控制取决于输入参数/服务层?

    序言 这是一个有点哲学问题 我更多地寻找 正确 的方法来做到这一点 而不是 一种 的方法来做到这一点 假设我有一些产品 以及一个在这些产品上执行 CRUD 的 ASP NET MVC 应用程序 mysite example products
  • Bool类型返回规则

    我使用 dapper ORM 所以我使用两个规则Query
  • 如何将敏感数据从视图传递到控制器

    为了构造一个包含大量信息的实体 我需要执行一系列表单提交 每次我从控制器返回视图时 我都需要传递一些有关尚未建立的实体的 id 现在 我将这些信息注入隐藏字段 并在发回服务器时继续构建实体 这样的场景持续了好几次 我对这种传递敏感信息的方式
  • 我应该为每个 Web 请求使用静态缓存的 ResourceManager 还是一个新实例?有关系吗?

    创建新的 NET 对性能 或其他 有何影响 如果有 ResourceManager根据每个请求new ResourceManger myResourceType FullName myResourceType Assembly 与在 Des
  • ASP.NET MVC 2 发行版本的实际调试符号

    我需要 ASP NET MVC 2 发布版本 通过 Web 平台安装程序安装的版本 中的实际调试符号 我知道我可以下载源代码 构建并使用其中的调试符号 但这种方法有几个问题 要求使用此版本的 DLL 重建所有其他依赖项 因为它未签名 如果您
  • 在 Asp.net MVC4 中访问 ViewBag 时出现 NullReferenceException

    我正在尝试访问ViewBag我认为的数据如下 span class small ViewBag BreadCrumb span 我正在发送那个ViewBag来自代码的数据 例如 ViewBag BreadCrumb topic Catego
  • 在 ASP.NET Core 中使用防伪功能并出现错误 - 防伪令牌无法解密

    我的 ASP Net Core MVC 应用程序已添加防伪中间件如下 启动 cs services AddMvc services AddSession services AddCaching services AddSession o g
  • 在 asp.net mvc 3 中使用 Last-Modified 标头和 OutputCacheAttribute 进行客户端缓存

    Edited 我想在客户端缓存图像 并且知道在 mvc 3 中有不同的方法可以做到这一点 如果我错了 请纠正我 1 你可以使用OutputCacheAttribute其工作原理是Expireshttp 标头 但它会回来304 Not Mod
  • Kendo Grid 内联编辑中的多选列表

    我需要在剑道网格 内联编辑 中使用多选列表 以便用户可以从每行列表中选择多个值 以下是我的要求 显示时 剑道网格应显示所有选定值的逗号分隔列表 添加时 剑道网格应显示多选列表并允许选择多个值 编辑时 剑道网格应显示具有已选择值的多选列表 用
  • PartialView Action 正在调用自身

    我有 MVC 应用程序 它用于从主视图 ProductMaster 将 ProductAreaGrid 列表显示为 PartialView 并且它将在局部视图内将 CreateProductArea 作为 PartialView 我的 Gr
  • Azure git 部署 - 第二个程序集中缺少引用

    我正在尝试将 Bitbucket 部署设置到 Azure 网站 我成功链接了 Bitbucket 和 Azure 但是当我推送到 Bitbucket 时 我在 Azure 站点上收到以下错误 如果我单击 查看日志 它会显示以下编译错误 D
  • 多行有多个提交按钮,我应该为每个按钮制作一个表单吗?

    我列出了大约 20 行 每行代表一个订单 每行需要有 3 个按钮 每个按钮单击将执行不同的操作 我有 3 个操作来处 理每个按钮发布请求 我只是不确定如何为每个按钮设置 Html 表单 tr td td tr
  • 返回视图作为 JSON 对象的一部分

    我有一个应用程序只加载一次完整视图 我这样做的原因并不重要 重要的是 其余内容只会以部分视图的形式返回 除了一些内容之外 我还有一些 JSON 对象 我想通过每个 AJAX 请求在服务器之间来回传递 有没有办法返回一个 JSON 对象 并将
  • Global.asax 和 Error.aspx 中的 ASP.NET MVC 错误日志记录

    我正在创建一个 ASP NET MVC 应用程序 我需要在两个地方处理异常 Global asax vb 文件 Public Class MvcApplication Inherits System Web HttpApplication
  • 如何在 MVC 3 中基于 XML 文件动态创建控件

    我有一个以 XML 格式存储在数据库中的 XML 文件 其中包含一些控件 例如下拉文本框 标签文本区域等 这些控件可能有也可能没有初始值 所以我的目标是读取 XML 文件 并根据控件类型 我需要动态创建该控件并关联初始值 如果有 并且页面的
  • URL 中的点 (.) 字符错误

    当我点击编辑具有此 url 的用户时遇到问题ASP NET MVC 3项目 http domain com 8089 User EditUser username surname IDUser e11a621p df11 4687 9903
  • 如何检查 MVC cshtml 页面中的调试模式

    如何检查 MVC cshtml 页面中的调试模式 此代码在 cshtml 页面中不起作用 bool isRelease false if DEBUG isRelease false else isRelease true endif if
  • asp.net MVC 1.0和2.0货币模型绑定

    我想创建模型绑定功能 以便用户可以输入 等等 用于绑定到我的 ViewModel 的双精度值的货币值 我能够在 MVC 1 0 中通过创建自定义模型绑定器来执行此操作 但是自从升级到 MVC 2 0 后 此功能不再起作用 有谁有任何想法或更

随机推荐

  • 如何获取字符串的前五个字符

    我读过这个获取第一个字符的问题 https stackoverflow com q 3878820 1716774字符串的 有没有办法从 C 中的字符串中获取前 n 个字符 您可以使用可枚举 Take http msdn microsoft
  • 将 chrome api 与 React.js 结合使用

    我一直在尝试使用 React 制作一个简单的 Chrome 扩展 清单看起来像这样 name New Tab version 1 0 manifest version 2 description A minimalist replaceme
  • Python 和 Selenium - 未知错误:元素在点 (663, 469) 处不可点击。其他元素将收到点击:

    我有这个 Selenium 代码 应该单击尺寸选择按钮 submit button driver find element by class name pro sku elementList submit button find eleme
  • 如何可视化内存中带有位域的 C 结构体的布局?

    我正在使用包括位字段的 C 结构 如下所示 struct beeper general t uint1 t enable 1 uint32 t 7 enum2 t loudness 2 uint32 t 22 enum2 t status
  • 从 BizTalk 中的平面文件中删除标头

    在 BizTalk 中从平面文件中删除标题行的最简单方法是什么 我通过为标题行 以及正文 创建一个单独的架构来实现这一点 然后将 配置管道 对话框中的 HeaderSpecName 属性设置为我刚刚创建的标题架构 然后将 PreserveH
  • 使用异步时 SqlConnection 未被释放

    我有一个项目 有一个 Sql Server 数据库后端和 Dapper 作为 ORM 我正在尝试使用 Dapper 的QueryAsync 方法来获取一些数据 不仅如此 对我的存储库的调用来自几个使用 a 调用的任务内部Task WhenA
  • PHP exec - 检查是否启用或禁用

    有没有办法检查 php 脚本是否exec 在服务器上启用还是禁用 这将检查该功能是否确实有效 权限 权利等 if exec echo EXEC EXEC echo exec works
  • 以最小的努力在多台计算机之间同步代码

    我希望能够跨多台计算机 准确地说是 3 台 同步源代码和整个项目 我尝试过使用 git 但从来没有获得过无忧无虑的体验 也许是因为我从来没有投入很多精力 所以 我理想中想要的是 能够将文件夹及其所有子文件夹添加到 同步 列表 基本上 一旦我
  • Visual Studio Publish 的动态文件夹名称

    是否可以在 VS 2017 中配置文件系统发布选项 以根据日期或增量构建版本部署到新文件夹 即 当我单击发布时 我希望它转到 MyApp v1 然后下次单击 MyApp V2 您可以使用一些宏 要执行日期 请使用此宏 System Date
  • Phonegap从Java代码获取本地存储值?

    我已经使用phonegap在客户端保存了数据本地存储 http docs phonegap com en 1 2 0 phonegap storage storage md html现在我想用java代码访问保存的数据 这可能吗 我怎样才能
  • jQuery UI MultiSelect Widget 选择保留在 IE 中,但不保留在 Chrome 中

    我正在使用jQuery 多选小部件 http www erichynds com examples jquery ui multiselect widget demos basic 使用 IE 时 如果我从基本下拉列表中选择 3 个选项 浏
  • Gradle println 在未调用时打印

    我的目标是每当idea任务已运行 但不幸的是 每当运行任何内容时都会打印该消息 为什么打印行在执行时执行idea任务没有运行 如何仅在以下情况下显示消息idea任务执行了 构建 gradle apply plugin idea task h
  • 更改 ant junit 任务中的工作目录

    我有一个运行 JUnits 测试的 ant 文件 这些测试依赖于某些配置文件的相对路径 我尝试设置批量测试的工作目录 但失败 我希望工作目录是 plugins dir name ant 脚本的 JUnit 部分
  • 如何合法使用网络字体? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我对适用于网络字体的法律有点困惑 我知道使用 Arial Times Romans Georgia 等字体是可以的 我认为使用其他商业字体是违法的 有
  • ng2-charts:如何设置 y 轴的固定范围

    我有一个使用 ng2 charts 模块的 Chart js 图表 该图表在 y 轴上显示百分比 在 x 轴上显示时间 是否可以将 y 轴设置为显示 0 到 100 而不是基于数据的动态范围 尝试将以下内容添加到图表选项中 scales y
  • 如何在java中执行定时器任务

    我只想用 Java 实现以下内容 有人有什么想法吗 public String method1 statement1 statement 5 我想为statemen1 涉及一些网络通信 设置一个计时器 如果语句 1 在 25 秒后仍未完成
  • 使用 PowerShell 对 zip 文件中的文件和文件夹进行计数

    如何计算 zip 文件中的文件和文件夹数量 我正在运行备份验证 需要将 zip 文件的文件夹结构与 Windows 文件夹的文件夹结构进行比较 最终目标是获得一个布尔值 源计数是否等于 zip 内容计数 到目前为止 这是我所掌握的 Refl
  • 如何使用 MigraDoc 让表情符号出现在生成的 PDF 中

    我正在尝试生成包含一些表情符号的 PDF 但没有成功 为了使其简单且可重现 这里是代码 Document document new Document Section section document AddSection Paragraph
  • Cocos2D 2.1:iOS 6 中已弃用“Delegate”。如何设置此 AVAudioSession 的委托?

    在 Xcode 4 5 中启动了 Cocos2D 2 1 模板 没有物理引擎 针对 iOS 6 和 iPad 在 CDAudioManager m 文件中 以下代码 AVAudioSession session AVAudioSession
  • Ninject 2.2 多重绑定

    我最近将 ASP NET MVC 3 应用程序更新为 Ninject 2 2 以前 我的主应用程序中有以下接口来实现绑定 Bind typeof IMyInterface lt gt To typeof MyImplementation l