Ninject + ASP.NET MVC + InRequestScope

2024-04-23

我的 Ninject 有问题。

我的绑定规则:

this.Bind<ISphinxQLServer>().To<SQLServer>();
this.Bind<IMySQLServer>().To<SQLServer>();

this.Bind<ISQLLogger>().To<StandardSQLLogger>()
    .InRequestScope();

this.Bind<DatabaseConnections>()
    .ToMethod(x => ConnectionFactory.GetConnections())
    .InRequestScope();

this.Bind<SQLServer>().ToSelf()
    .InRequestScope()
    .WithConstructorArgument("connections", Kernel.Get<DatabaseConnections>())
    .WithConstructorArgument("logger", Kernel.Get<ISQLLogger>());

Where

SQLServer、ISphinxQLServer 和 IMySQLServer 是:

public class SQLServer: ISphinxQLServer, IMySQLServer
{
    public DatabaseConnections Connections { get; internal set; }
    public ISQLLogger Logger { get; internal set; }

    public SQLServer(DatabaseConnections connections)
    {
        this.Connections = connections;
    }

    public SQLServer(DatabaseConnections connections, ISQLLogger logger)
    {
        this.Connections = connections;
        this.Logger = logger;
    }
}

我希望每个用户对我的 asp.net mvc 站点的请求都会创建一个 SQLServer、一个 ISQLLogger 和一个 DatabaseConnections。但我的解决方案不起作用。我究竟做错了什么? =(


您不需要指定WithConstructorArgument。将参数解析为注入对象的构造函数是 Ninject 为您所做的工作的一部分。所以定义应该看起来更像这样:

this.Bind<SQLServer>()
    .ToSelf()
    .InRequestScope();

this.Bind<ISphinxQLServer>()
    .ToMethod( x => x.Kernel.Get<SQLServer>() );

this.Bind<IMySQLServer>()
    .ToMethod( x => x.Kernel.Get<SQLServer>() );

this.Bind<ISQLLogger>()
    .To<StandardSQLLogger>()
    .InRequestScope();

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

Ninject + ASP.NET MVC + InRequestScope 的相关文章

  • 在模型对象上设置属性?

    Hi 我正在构建 ASP NET MVC 站点并遇到了问题 在我的项目中 我得到了一个 modelview 类 其中包含几个属性 例如 public class myModelView public int MyProperty1 get
  • 如何在 Web api 2、odata 中隐藏元数据

    我已经使用定义了 odata 路由MapODataServiceRoute in my WebApiConfig config Routes MapODataServiceRoute CompanyoOdata odata GetImpli
  • MVC模型未成功更新但找不到原因

    这让我抓狂 我不断收到以下异常 System InvalidOperationException Models Expense 类型的模型未成功更新 在System Web Mvc Controller UpdateModel TModel
  • 如何在mvc 4中使用多重选择?

    我想使用多重选择Chosen http harvesthq github com chosen 我有类似的技能模型 public class Skill public int Id get set public string Name ge
  • ControllerBase(asp.net mvc) 中的 HttpContext.Current.User 为 null

    我有一个ControllerBaseASP NET MVC 应用程序中的类 其他控制器继承自ControllerBase 我想访问HttpContext User Identity Name but HttpContext is null
  • 验证仅适用于数组的第一项

    给定这个模型代码 Required Display Name Name public string Name get set 以下查看代码有效 Html LabelFor model gt model Name Html TextBoxFo
  • ASP.NET MVC 用户名可用性检查

    我已经阅读了很多分步教程 但仍然无法让我的代码工作 我浏览了这个网站上的解决方案 但也没有运气 我不知道我做错了什么 我正在使用 jQuery 想知道用户名 mark 是否被占用 我什至还没有达到数据库链接 HTML
  • Windows Workflow Foundation 4 和 ASP.NET MVC

    我们正在评估 Windows Workflow Foundation 4 在基于 MVC 3 的 Web 应用程序中的使用 我们希望为不同的项目创建灵活的订单工作流程 有人知道有关此类应用程序的一般架构或实践实验室的详细信息吗 一些具体问题
  • 自定义 ViewEngine ASP.NET MVC 3

    我正在为 ASP NET MVC 的自定义视图引擎寻找最简单的解决方案 这样我就可以超越路径来寻找视图 实际上 我正在尝试在我的解决方案中构建一个主题系统 我查看了网络 但发现了很难学习和实施的解决方案 Thanks 这就是我用的 它在主题
  • 无法处理 ajax 中的 302 重定向,为什么? [复制]

    这个问题在这里已经有答案了 我有一个使用表单身份验证用 asp net mvc 编写的后端服务器 当用户未通过身份验证时 服务器将自动发送 302 重定向到登录操作并返回登录页面 在客户端 我有一个项目列表 只有经过身份验证的用户才能访问此
  • 这叫什么类型的建筑?

    对于我当前正在开发的 Web 应用程序 ASP NET MVC 我们采用以下架构 Data Access Layer 将数据持久保存到任意数据库的逻辑 Domain 数据模型 Service Layer 业务逻辑 例如订单处理 账户管理等
  • 分页助手 asp.net mvc

    我已经实现了一个分页 html 帮助器 改编自史蒂文 桑德森的书 这是当前的代码 公共静态字符串PageLinks 此HtmlHelper html int currentPage int TotalPages Func pageUrl S
  • ASP.NET MVC 中的缩小操作筛选器属性

    我有一个返回大量动态 JavaScript 的控制器操作 一次向客户端提供服务 并且我已经启用了 GZip 压缩 我想做的一件事是读取执行的结果流并对其应用 JS 缩小 是否可以使用操作过滤器属性来做到这一点 我认为我的问题可以归结为 假设
  • 使用 jqGrid 的 ASP.NET MVC 路由

    我正在尝试创建一个指向 url 的链接 例如首页 详情 1在 jqGrid 列中 文档显示 showlink baseLinkUrl showAction show addParam key 2 注意 addParam 应该包含 例如 格式
  • aspnet_Profiles 表中的 PropertyValuesString 和 PropertyValuesBinary 字段有何用途?

    我认为 PropertyValuesString 用于通常是这些类型对象的键值对的值部分 但是 如果您已经将值放入 PropertyValuesString 中 那么 PropertyValuesBinary 字段会出现在哪里呢 这两个字段
  • ASP.NET 捆绑和缩小 - 包括用于生产捆绑的已缩小文件和用于开发的未缩小文件

    我需要一些有关 ASP NET MVC 捆绑和缩小的专家建议 我的项目脚本文件中有未缩小的 js 和缩小的版本 min js 我已将它们包含在我的脚本包中 如下所示 bundles Add new ScriptBundle bundles
  • 不支持关键字:“元数据”。?使用 MVC3 在实体框架中使用 Sql 连接

    我将 Entity Framework 4 与我的 Asp Net MVC3 应用程序一起使用 我的问题是我正在使用实体框架对我的数据库执行操作 工作正常 出于其他目的 我还使用 Sql Connection 来存储和检索数据库中的数据 我
  • 使用 asp.net mvc 在 Dropbox 中下载文件

    我正在使用 ASP net MVC 4 和 Dropbox API 从我的 Dropbox 帐户下载文件 我已经在我的项目中成功安装了 api 我正在关注本教程 https www dropbox com developers docume
  • ASP.NET MVC 5 基于用户角色自定义 Bootstrap 导航栏

    我正在使用 ASP NET MVC 5 内置身份验证方法 我想根据用户所处的角色显示和隐藏链接 在菜单导航栏中 有人达到这个目的了吗 从哪里开始 只需将您的链接包含在 if User IsInRole SomeRole
  • Ninject 绑定所有实现相同接口的类

    我有一个接口类 public interface IStartUpTask bool IsEnabled get void Configure 我有多个类实现相同的接口 其中一个类如下所示 public class Log4NetStart

随机推荐

  • Android Spinner 尺寸非常大

    我正在尝试获得像我的应用程序中那样的 ICS 旋转器 并玩了几个小时 最后我使用 HoloEverywhere 来获得它 并且它正在工作 但我有一个设计问题 即旋转器没有包装其我在 xml 中设置的内容 默认情况下如下所示 实际上 我在谷歌
  • Xamarin Android - 如何重建 Resource.designer.cs

    在 Xamarin Android 中 如何重新生成 Resource designer cs 我尝试将所有 XML 文件的构建操作标记为 AndroidResource 但 Resource designer cs 仍然不会使用新值进行更
  • 使用 Clapprjs 在网页上流式传输 .m3u8

    我使用 nginx rtmp 将 rtmp 转换为 hls 并使用 Clappr 在网页中进行流式传输 但 Clappr 采用旧的 ts 段 导致 404 错误 因为它在服务器上被删除 如何解决这个问题 抱歉 这是我第一次使用 nginx
  • 如何禁用 nuget 机器范围的缓存?

    如您所知 NuGet 使用 LOCALAPPDATA NuGet Cache 位置进行缓存 它首先检查请求的包是否在这里 然后根据需要进行下载 如何从 Nuget 和 Visual Studio 2013 正确禁用此缓存机制 并确保它们始终
  • “私有构造函数捕获”习语的 Java 示例是什么?

    有人可以向我解释一下吗私有构造函数捕获习惯用法举例说明哪些地方我们实际上需要 不需要这种设计 目的是在施工过程中获取临时价值 解决方案 53 中给出了一个示例Java 谜题 http www amazon co uk JavaTM Puzz
  • 从 Selenium IDE 将测试导出为 python

    我在 Selenium IDE 中进行了几次测试 并将其保存为 HTML 格式的测试套件 该测试套件可以很好地导入回 selenium IDE 但是现在我想使用 python 扩展这些测试 当我单击导出测试套件并选择 python 时 我收
  • 使对象不可调用

    在 JavaScript 中 函数是可调用的 我可以从函数中删除此属性 只留下普通对象吗 var foo function foo callable false pseudocode foo foo is not a function 我可
  • Spring Integration 将路径变量和帖子主体结合到有效负载表达式中

    使用 http 入站网关 我可以使用 SPEL 指定有效负载表达式 该表达式将访问 header requestParams 和 pathVariables 如何同时包含 POST 中的正文 我目前拥有的一个例子是
  • 将 tar.gz 转换为 zip

    我的 Ubuntu 网络服务器上有大量 gzip 压缩档案 我需要将它们转换为 zip 我认为这可以通过脚本来完成 但是我应该使用什么语言 以及如何解压缩和重新压缩文件 我会用一个bash 1 单行 for f in tar gz do r
  • 任务编辑文档预览组件Alfresco

    第一个问题 我想以工作流程任务编辑的形式实现文档预览 我该怎么做 我尝试去适应document details xml and document details ftl to workflow details xml and workflo
  • R 中按值传递

    当尝试调用 grid arrange 将多个图放在同一个 ggplot2 图上时 我首先构建一个我想要的图的列表 然后我构建相应的参数列表来调用 grid arrange 如所解释的在上一个问题中 https stackoverflow c
  • 使用登录名签出 svn+ssh

    我想从存储库中签出一些内容 但是我输入 svn co svn ssh URL 我被要求输入密码 我想他使用的用户名来自我的控制台 但两者不一样 那么我如何使用不同的登录名使用 svn ssh 签出某些内容呢 SSH 允许您在连接 URL 中
  • 通过python从netCDF中提取特定位置的数据

    我是 Python 的新手 也是 NetCDF 的新手 如果我不清楚 请道歉 我有一个包含多个变量的 nc 文件 我需要以新的顺序从这些 nc 文件中提取数据 我的 nc 文件有 8 个变量 经度 纬度 时间 u10 v10 swh mwd
  • 如何“安装”Action Bar Sherlock?

    我正在尝试使用 Action Bar Sherlock 构建示例项目 Action Bar Styled 我在这里下载包含 ABS 的 zip 文件http actionbarsherlock com http actionbarsherl
  • ReactJS onclick 添加或删除类到另一个元素

    我正在努力将我的普通 jQuery 代码转换为 React JS 我是 React 新手 我有以下代码 add click function nav addClass show remove click function nav remov
  • 如何将单个部分中的 Sphinx 章节分成不同的文件?

    我正在使用出色的 Sphinx 工具来创建一些文档 并且我试图通过将同一部分的章节分成单独的文件来保持代码库的模块化形式 请参阅此处了解 章节 和 部分 的定义 http www sphinx doc org en stable rest
  • Homestead 给出 404 Not Found

    我正在尝试启动并运行 Homestead 2 0 以用于 Laravel 的本地开发 我跟着Laracast https laracasts com lessons say hello to laravel homestead two 但我
  • 画布已被跨源数据本地图像污染

    这个问题已经被问了很多次 但我只是不明白为什么这种情况会发生在我身上 基本上 我有一个画布和一个图像 当我尝试这样做时 var canvas document getElementById somecanvas var ctx canvas
  • 使用 NodeJS 和 Restify 重定向客户端

    我正在使用 NodeJS Restify 和 PassportJS 为 SPA 构建 REST 后端以进行身份 验证 除了最后一步之外 一切正常 即将客户端从后端 login facebook callback 重定向到应用程序的主页 我在
  • Ninject + ASP.NET MVC + InRequestScope

    我的 Ninject 有问题 我的绑定规则 this Bind