Castle Windsor IoC 属性注入简单操作方法

2023-11-21

好吧,我想也许有too much有关温莎城堡的信息,因为寻找这些关键字可以为我提供所有内容的示例,坦率地说,我不太了解它如何工作以正确解决此问题。我已经尝试了很多排列,但运气不佳。

我有一个IUnitOfWorkFactory我想实例化为单例。因此,我安装了温莎城堡,编写了一些代码,如下所示:

iocContainer = new WindsorContainer()
    .Install(FromAssembly.This());

var propInjector = iocContainer.Register(
    Component.For<IUnitOfWorkFactory>()
    .LifestyleSingleton()
    .Instance(new NHUnitOfWorkFactory())
    );

propInjector.Resolve<IUnitOfWorkFactory>();

这是从我的电话中调用的Application_Start method.

我有一个AccountController像这样接线:

public class AccountController : SecureController
{
    public IUnitOfWorkFactory UnitOfWorkFactory { get; set; }
    ...

...据我所知,这应该只是“工作”(尽管不要问我如何)。但当我尝试使用它时,我的属性始终为空。

似乎我错过了一些愚蠢而简单的东西,但我不知道它是什么。

我也尝试过

var propInjector = iocContainer.Register(
    Component.For<IUnitOfWorkFactory>()
    .ImplementedBy<NHUnitOfWorkFactory>()
    .LifestyleSingleton()
    );

没有成功。

我究竟做错了什么?

结论

我在这里错过了几个步骤。我已经根据以下内容构建了一个安装程序和一个引导程序tutorial,但在构建控制器工厂之前,我在错误的位置注册了我的服务。现在我的引导程序看起来像这样:

iocContainer = new WindsorContainer()
    .Install(FromAssembly.This());

var controllerFactory = new WindsorControllerFactory(iocContainer.Kernel);
ControllerBuilder.Current.SetControllerFactory(controllerFactory);

iocContainer.Register(
    Component.For<IUnitOfWorkFactory>()
    .ImplementedBy<NHUnitOfWorkFactory>()
    .LifestyleSingleton()
    );

...我的属性注入不再为空...现在我只需要调试其他 87 个问题...


当容器解析根对象时,构造函数和属性注入都会起作用。在这种情况下,您的AccountController将是 Windsor 需要创建的根对象。

为了连接它,您应该使用控制器工厂。一旦控制器被容器注册并解析,一切都应该按您的预期工作。

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

Castle Windsor IoC 属性注入简单操作方法 的相关文章

  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • 如何针对 Nancy 中的 Active Directory 进行身份验证?

    这是一篇过时的文章 但是http msdn microsoft com en us library ff650308 aspx paght000026 step3 http msdn microsoft com en us library
  • 使用 Google Analytics API 在 C# 中显示信息

    我一整天都在寻找一个好的解决方案 但谷歌发展得太快了 我找不到有效的解决方案 我想做的是 我有一个 Web 应用程序 它有一个管理部分 用户需要登录才能查看信息 在本节中 我想显示来自 GA 的一些数据 例如某些特定网址的综合浏览量 因为我
  • c# Asp.NET MVC 使用FileStreamResult下载excel文件

    我需要构建一个方法 它将接收模型 从中构建excel 构建和接收部分完成没有问题 然后使用内存流导出 让用户下载它 不将其保存在服务器上 我是 ASP NET 和 MVC 的新手 所以我找到了指南并将其构建为教程项目 public File
  • 按字典顺序对整数数组进行排序 C++

    我想按字典顺序对一个大整数数组 例如 100 万个元素 进行排序 Example input 100 21 22 99 1 927 sorted 1 100 21 22 927 99 我用最简单的方法做到了 将所有数字转换为字符串 非常昂贵
  • 在 ASP.Net Core 2.0 中导出到 Excel

    我曾经使用下面的代码在 ASP NET MVC 中将数据导出到 Excel Response AppendHeader content disposition attachment filename ExportedHtml xls Res
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • 我的 strlcpy 版本

    海湾合作委员会 4 4 4 c89 我的程序做了很多字符串处理 我不想使用 strncpy 因为它不会终止 我不能使用 strlcpy 因为它不可移植 只是几个问题 我怎样才能让我的函数正常运行 以确保它完全安全稳定 单元测试 这对于生产来
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • 将应用程序从 Microsoft Access 迁移到 VB 或 C#.NET

    我目前正试图说服管理层需要将我们的应用程序之一移植到 NET 该应用程序已经发展成为 Access 中的一个庞然大物 SQL 后端 拥有 700 个链接表 650 个表单 子表单 130 个模块和 850 个查询 我几乎知道这样做的所有主要
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM
  • 作为字符串的动态属性名称

    使用 DocumentDB 创建新文档时 我想设置属性名称动态地 目前我设置SomeProperty 像这样 await client CreateDocumentAsync dbs db colls x new SomeProperty
  • 如何在单击按钮时重新绑定 igGrid igniteUI 控件中的数据?

    我在 ASP NET MVC3 应用程序中使用 Infragistics Ignite UI 控件 我有一个已绑定到 客户 数据的网格 工作正常 现在我有按钮了 单击后我会进行 ajax 调用 在控制器中 我编写了仅选择 客户 数据的一部分
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • 在 ASP.NET 中将事件冒泡为父级

    我已经说过 ASP NET 中的层次结构 page user control 1 user control 2 control 3 我想要做的是 当控件 3 它可以是任何类型的控件 我一般都想这样做 让用户用它做一些触发回发的事情时 它会向
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud

随机推荐

  • 为什么 print 函数返回 None?

    为什么外层print在此代码中显示None gt gt gt a print print Python Python None gt gt gt print type a
  • 在 iPhone SDK 中创建自定义活动指示器?

    我还没有找到任何使用自定义活动指示器的应用程序 将是老式的动画 GIF 来代替 Apple 提供的旋转轮 是否有工具可以做到这一点 或子类 UIActivityIndi catorView 开发人员是否滚动自己的 UIView 或者这是否违
  • 具有代码完成功能的最小 PHP IDE? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 有很多小型编辑器 例如 Notepad vim 和 SciTE 但它们一次只能处理一个文件 换句话说 他们不知道代码库的整个范围 另一方面 我见过的
  • 使用 fputcsv 从多维数组创建 CSV

    我正在尝试将多维数组放入 csv 文件中 数组中的数据是这样的 Array 0 gt Array product id gt 1111 name gt Alcatel One Touch Idol 2 keyword gt alcatel
  • C++11 的 std::string 的底层表示形式是否保证具有终止空字符? [复制]

    这个问题在这里已经有答案了 首先摘录一些标准 规格string operator const reference 运算符 size type pos const 引用运算符 size type pos Requires pos Return
  • time.time() 无法在 Cython 中运行 while 循环预定时间

    我有一个 Python 模块 其中包含一个 while 循环 该循环应该运行固定的时间 我通过向 time time 的输出添加一个常量并运行直到 time time 大于该变量来完成此操作 这没有出现任何问题 但同样的事情在 Cython
  • 如何使用相机测量物体的高度、宽度和距离? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我引用了很多链接 但我仍然无法从中得到任何可以开始我的开发的信息 我想用相机测量图像的高
  • 使用预处理器将 JSON 作为字符串嵌入到 C++ 代码中

    我在 Chromium 项目中看到了 C 和 JSON 代码的混合 例如在这个文件中 配置 software rendering list json cc 这个宏有魔力吗 define LONG STRING CONST VA ARGS 它
  • add 和 iadd 之间的区别?

    我不明白 iadd imul 等就地运算符的用途 许多操作都有 就地 版本 以下功能 为就地运算符提供比通常更原始的访问 语法确实如此 例如 语句 x y 相当于 x 运算符 iadd x y 另一种表达方式是 z operator iad
  • 使用 Tensorflow 进行多任务深度学习

    有人尝试过使用 TensorFlow 进行多任务深度学习吗 也就是说 共享底层而不共享顶层 一个带有简单说明的例子会有很大帮助 有一个类似的问题here 答案使用了keras 只使用张量流时也是类似的 这个想法是这样的 我们可以定义网络的多
  • 为什么 powershell 控制台错误地调整了我的 GUI 表单的大小?

    我想在 1920 x 1080 像素的 Windows 11 屏幕上打开特定尺寸的 powershell GUI 表单 设置中的系统缩放比例设置为 125 这不可能是一个不寻常的配置 作为测试 我尝试打开一个大小为屏幕四分之一的窗体 如下所
  • Pandas Dataframe 日期时间切片与索引与多索引

    使用单个索引数据框 我可以执行以下操作 df2 DataFrame data data 1 2 3 index Index dt 2016 1 1 dt 2016 1 2 dt 2016 2 1 gt gt gt df2 2016 01 2
  • CLGeocoder 仅返回一个地标

    我在 CLGeocoder 上遇到问题 当我打电话时geocodeAddressString withCompletionHandler尽管知道输入的字符串应该返回多个值 但我只得到一个结果 类参考甚至指出 在前向地理编码请求的情况下 如果
  • 添加 runat="server" 会更改布局的行为

    我有一个带有一些控件 用户控件等的页面 当我从普通更改 div 时 div to a div 布局完全改变 这是为什么 我该如何预防 我正在使用 2 0 NET 框架 是因为 NET 改变了我的 id 这显然是我不想要的吗 如果您在 CSS
  • 除法和浮点数

    任何人都可以帮助我为什么 x2 打印零 我想因为浮点表示 X1 被四舍五入 有没有办法保持进动 long double x1 x2 x1 0 087912088 Note 360 4095 0 087912088 x2 360 4095 p
  • 使用 Admob 在 Android 中实现原生广告?是否可以?

    我正在尝试在我的 Android 应用程序中实现原生广告 但我只想使用 admob 来做到这一点 我搜索了很多解决方案 但找不到确切的解决方案 我知道可以使用MoPub What I wanted to do is this Show ad
  • 如何下载整个 pypi Python 包索引

    我正在尝试找到一种方法来下载整个 PyPi 索引 并且仅下载索引 没有代码文件 我想分析许可证类型 以便能够排除许可证类型限制过多的库 我已经在网上查看并浏览了用户指南 但如果答案就在那里 我却无法理解 嗯 你可以使用PyPi 的简单索引无
  • CSS 属性选择器 + 后代在 Webkit 中出现错误?

    考虑这个 CSS data color red h1 background color red data color blue h1 background color blue 还有这个 HTML div h1 red h1 div div
  • 使用 Firebase-UI (Android) 的 Firestore 聊天应用

    我正在尝试使用 Cloud Firestore 的 Firebase UI 库创建聊天 Thisgithub存储库包含我正在使用的相关代码 问题在于查询的顺序 看到查询被指定为 Query sChatQuery sChatCollectio
  • Castle Windsor IoC 属性注入简单操作方法

    好吧 我想也许有too much有关温莎城堡的信息 因为寻找这些关键字可以为我提供所有内容的示例 坦率地说 我不太了解它如何工作以正确解决此问题 我已经尝试了很多排列 但运气不佳 我有一个IUnitOfWorkFactory我想实例化为单例