删除了 C# 和 IoC 传递依赖项

2024-04-05

我有一个使用 IoC (windsor) 的解决方案。 解决方案中的项目如下:

  1. 接口 - 保存我将使用的所有接口合约。
  2. IoC.Installers - 保存我的依赖项的所有安装程序(参考实现和接口)
  3. IoC - 包含一个包含 IoC 容器的单例类。该类执行容器的初始化过程。
  4. 控制台 - 使用 IoC 解决依赖关系的项目(引用 IoC 接口)

问题:由于 IoC 项目不直接使用 IoC.Installers 项目,因此在 Console 项目的构建过程中省略了它,因此在初始化过程中找不到安装程序。

解决方法:在 IoC 项目中,我添加了一个静态构造函数,该构造函数直接从 IoC.Installers 项目启动安装程序并使用它(我在我创建的实例上执行 GetType() )

问题解决方法:我想创建一些通用的容器支架,我可以从一个解决方案转移到另一个解决方案,而无需修复我的黑客行为。

有没有更好的方法来强制将 IoC.Installers dll 复制到 bin 文件夹而不需要 hack? 最终目标是创建一个 nuget 包裹 castlewindsor 并尝试找到解决方案中的所有安装程序并安装它们

我正在添加一个链接到 git 存储库 https://bitbucket.org/nocgod/iocproblemdemo/src我在其中创建了一个重现问题的项目(它也包含解决方法)

Thanks!


正如中所讨论的“复制本地”对于项目引用是否具有传递性? https://stackoverflow.com/q/26163368/91696,你唯一的选择是

  1. 在 IoC 容器库中添加库的虚假用法;
  2. 添加构建后 XCOPY 步骤,将库复制到应用程序输出文件夹;

如果您选择#2并且不知道如何做,请查看MSBuild指南 http://msdn.microsoft.com/en-gb/library/dd393574.aspx了解如何编辑 MSBuild 脚本(您必须编辑<Target Name="AfterBuild" />应用程序 .csproj 的元素)。

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

删除了 C# 和 IoC 传递依赖项 的相关文章

  • 调用许多网络服务的最佳方式?

    我有 30 家子公司 每家都实施了他们的 Web 服务 使用不同的技术 我需要实现一个Web服务来聚合它们 例如 所有子公司的Web服务都有一个名为的Web方法GetUserPoint int nationalCode 我需要实现我的网络服
  • 当其源是 https uri 时如何使 wpf MediaElement 播放

    在 wpf 独立应用程序 exe 中 我在主窗口中包含了 MediaElement
  • 通过 SOAP 的 Gmt php 或 UTC C# 等效项

    is C DateTime UtcNow和 PHPdate c 是等价的 我怀疑 因为当我肥皂时 我得到了 C
  • .pdbs 会减慢发布应用程序的速度吗?

    如果 dll 中包含 pdb 程序调试 文件 则行号将出现在引发的任何异常的堆栈跟踪中 这会影响应用程序的性能吗 这个问题与发布与调试 即优化 无关 这是关于拥有 pdb 文件的性能影响 每次抛出异常时都会读取 pdb 文件吗 加载程序集时
  • 具有多个谓词的 C++11 算法

    功能如std find if来自algorithmheader 确实很有用 但对我来说 一个严重的限制是我只能为每次调用使用 1 个谓词count if 例如给定一个像这样的容器std vector我想同时应用相同的迭代find if 多个
  • 在 Mac OS X 上安装 libxml2 时出现问题

    我正在尝试在我的 Mac 操作系统 10 6 4 上安装 libxml2 我实际上正在尝试在 Python 中运行 Scrapy 脚本 这需要我安装 Twisted Zope 现在还需要安装 libxml2 我已经下载了最新版本 2 7 7
  • MSMQ接收和删除

    是否有任何选项可以在读取消息后将其从 MSMQ 中删除 比如 接收 删除可以作为原子操作运行吗 听起来您想查看下一条消息 然后在处理完成后接收它 Message message Queue Peek Queue ReceiveById me
  • 以下 PLINQ 代码没有改进

    我没有看到使用以下代码的处理速度有任何改进 IEnumerable
  • 虚拟并行端口模拟器

    在我的计算机网络课程中 我们应该通过使用本机寄存器 例如使用 outportb 等命令 来学习并行端口编程 我没有并行端口 因为我住在 2011 年 但想练习这些程序 我使用 dosbox 安装了旧的 Turboc 3 IDE 有没有一个程
  • 提升mapped_file_source、对齐方式和页面大小

    我正在尝试在性能很重要的上下文中解析一些大小高达几百兆字节的文本文件 因此我使用 boostmapped file source 解析器期望源以空字节终止 因此我想检查文件大小是否是页面大小的精确倍数 如果是 则使用较慢的非内存映射方法 我
  • 如何增加ofstream的缓冲区大小

    我想增加 C 程序的缓冲区大小 以便它不会过于频繁地写入 默认缓冲区是 8192 字节 我尝试使用 pubsetbuf 将其增加到 200K 原始代码 ofstream fq fastq1 cstr ios out fastq1 is a
  • 如何在新窗口中打开图像或pdf文件?

    我有一个 gridview 它包含文件名和文件路径 图像和 pdf 格式文件 其中我使用了模板字段 在该字段下放置了 1 个图像按钮 单击该图像按钮 即 查看 按钮 时 我想在新窗口中打开所选文件 这是我的代码 protected void
  • 在 C 语言中替换宏内的宏

    我正在尝试使代码部分可重用 我下面的评论片段没有达到我想要的效果 define NAME ABC define LOG SIZE NAME LEN 我想LOG SIZE决心ABC LEN 我尝试过使用 但没能让它发挥作用 LOG SIZE在
  • 是否可以在Linux上将C转换为asm而不链接libc?

    测试平台为Linux 32位 但也欢迎 Windows 32 位上的某些解决方案 这是一个c代码片段 int a 0 printf d n a 如果我使用 gcc 生成汇编代码 gcc S test c 然后我会得到 movl 0 28 e
  • 将 2 个字节转换为整数

    我收到一个 2 个字节的端口号 最低有效字节在前 我想将其转换为整数 以便我可以使用它 我做了这个 char buf 2 Where the received bytes are char port 2 port 0 buf 1 port
  • C++ 模板可以提供 N 个给定类的公共父类吗?

    我正在寻找一个 C 模板 它可以找到一组给定类的共同父级 例如 class Animal class Mammal public Animal class Fish public Animal class Cat public Mammal
  • 在 Qt 中播放通知(频率 x)声音 - 最简单的方法?

    Qt 5 1 或更高版本 我需要播放频率为 x 的通知声音 n 毫秒 如果我能像这样组合音调那就太好了 1000Hz 持续 2 秒 然后 3000Hz 持续 1 秒 最简单的方法是使用文件 WAV MP3 例如如此处所述 如何用Qt播放声音
  • 将日期时间显示为 MM/dd/yyyy HH:mm 格式 C#

    在数据库中 日期时间以 MM dd yyyy HH mm ss 格式存储 但是 我想以 MM dd yyyy HH mm 格式显示日期时间 我通过使用 String Format 进行了尝试 txtCampaignStartDate Tex
  • 解释这段代码的工作原理;子进程如何返回值以及在哪里返回值?

    我不明白子进程如何返回该值以及返回给谁 输出为 6 7 问题来源 http www cs utexas edu mwalfish classes s11 cs372h hw sol1 html http www cs utexas edu
  • IDisposable 的显式实现

    虽然有很多关于IDisposable在 SO 上找到 我还没有找到答案 我通常遵循这样的做法 当我的一个班级拥有一个IDisposable对象然后它也实现IDisposable并打电话Dispose在拥有的对象上 然而最近我遇到了一个类 它

随机推荐

  • 使用 Javascript 跨浏览器处理“Enter”键按下

    我有以下示例 可以轻松检测到 Enter 键按下并正确处理它 这里是
  • bookshelf.js 计数方法

    我一直在寻找如何使用 Bookshelf js 进行基本计数 例如 SELECT COUNT something FROM table 但无济于事 我有什么遗漏的吗 或者它只是与手动选择查询一起使用 Thanks 目前这是一个手动查询 例如
  • 通过 Powershell 关闭时无法停止所有 Excel 进程

    使用此代码 我打开 excel 使用visible false 以便用户看不到它 写入工作簿 然后在脚本结束后打开 excel 使其可见 或完全关闭它而不保存 当我保存 Excel 使其保持打开状态 结束脚本 然后稍后手动关闭 Excel
  • 如何将 JavaScript 中的数字除以任意精度(例如小数点后 28 位)

    我知道https floating point gui de https floating point gui de 事实上 有许多库可以帮助处理大数 但令人惊讶的是 我找不到任何可以处理除法运算结果中小数点后 19 位以上的库 我花了几个
  • 在 Windows 中批量将 cp1252 转换为 utf-8

    所以 我一直在尝试使用我在网上找到的提示和矩阵 将大型java源代码树从cp1252转换为Windows中的UTF 8 特别是here https stackoverflow com a 9310774 问题是 我在 Windows 上 我
  • 将 Select 语句放在 Hibernate 事务上

    我已经阅读了一段时间有关 Hibernate 的内容 但我似乎无法理解有关 Hibernate 的一个概念Transaction 在我访问过的一些网站上 Select语句处于事务模式是这样的 public List
  • 使用短语构建语料库

    我的文件如下 doc1 very good very bad you are great doc2 very bad good restaurent nice place to visit 我想让我的语料库与 这样我的最后DocumentT
  • 将点云转换为深度/多通道图像

    我有一个通过使用立体相机扫描平面生成的点云 我已经生成了法线 fpfh 等特征 并使用这些信息我想对点云中的区域进行分类 为了能够使用更传统的 CNN 方法 我想将此点云转换为 opencv 中的多通道图像 我将点云折叠到 XY 平面 并与
  • 如何在 Safari HTML5 中启用表格行的重影效果?

    当我拖动项目时没有重影效果 table行 在 Safari 上 我用table所以这是一个tr 幻影效果是指您可以看到跟随鼠标移动的项目 在 Chrome FF 上它可以工作 有人知道为什么吗 我注意到它不仅在tr td 如果我使用li o
  • RSA 加密 AES 密钥的强度

    我目前正在开发一个在客户端和服务器之间传输数据的系统 并且想知道我计划使用的加密强度是多少 我的想法是拥有一个私钥 公钥 RSA 密钥对 并将公钥分发给每个客户端 将私钥仅保留在服务器上 然后 每个客户端将生成自己的 AES 密钥并使用 R
  • 绝对定位与固定定位

    我有一个自定义对话框 当我单击按钮时会显示该对话框 显示对话框后 我会显示一个覆盖图 覆盖层的高度和宽度为100 x 100 问题来了 高度 100 只是获取浏览器窗口的高度 所以当我在页面上向下滚动时 它仍然位于顶部 如何将其高度设置为整
  • 如何获取C中最右边设置位的位置

    int a 12 例如 12 的二进制是 1100 所以答案应该是 3 因为设置了右起第 3 位 我想要最后一个最设置位的位置a 谁能告诉我该怎么做 NOTE 我只想要位置 在这里我不想设置或重置该位 所以它与 stackoverflow
  • 如何对我的方法输入参数设置验证约束?

    以下是实现此目标的典型方法 public void myContractualMethod final String x final Set
  • Android:带有 com.android.email 的 ACTION_SEND_MULTIPLE

    我正在尝试将 Intent 中的多个附件发送到电子邮件应用程序 而不是 Gmail 应用程序 我在用着 Intent emailIntent new Intent android content Intent ACTION SEND MUL
  • 在 docker exec 命令中使用“*”

    我正在尝试在运行的 docker 容器中运行特定命令 Docker exec t containername1 ls tmp sth 作为回报我收到 ls cannot access tmp sth No such file or dire
  • 伊莎贝尔语中“case _ of _”是什么意思

    在读的时候这个关于商类型的答案 https stackoverflow com a 67237629 14656198 我偶然发现了这个结构 case of 经检查手册 https isabelle in tum de doc isar r
  • Bootstrap - 谁能给我任何例子,如何设置 JS 按钮?

    我正在玩 Bootstrap有状态按钮 http twitter github com bootstrap javascript html buttons 特别是与加载状态 但仍然找不到正确的设置来使其正常工作 我有一个基于 AJAX 的简
  • tcl 暂停并等待按键继续

    我正在 tcl 中寻找一种方法来暂停脚本 例如在使用 puts 进行一些输出之后 并等待用户按下按键 然后再继续输出剩余的文本 你只需使用gets从标准输入读取 proc pause message Hit Enter to continu
  • 如何定义正则表达式(preg_replace)以删除数字字符之间的空格

    我有这样的字符串 str old iccid 809831 3245 345 new iccid 999000 112221 如何定义正则表达式以删除 PHP 中数字字符之间的空格字符 成为此输出 output old iccid 8098
  • 删除了 C# 和 IoC 传递依赖项

    我有一个使用 IoC windsor 的解决方案 解决方案中的项目如下 接口 保存我将使用的所有接口合约 IoC Installers 保存我的依赖项的所有安装程序 参考实现和接口 IoC 包含一个包含 IoC 容器的单例类 该类执行容器的