castle-windsor相关内容

使用 PerWebRequest 生活方式测试 Castle Windsor 组件

我正在尝试对涉及的城堡温莎进行一些测试,在我的一项测试中,我想检查温莎安装程序,因此我检查容器是否可以根据其接口解析我的组件. 到目前为止,一切都很好,当组件在其安装程序中具有 PerWebRequest 生活方式时,问题就开始了,起初它抱怨 HttpContext.Current 为空,解决了在测试设置中创建假 Context 我现在有了这个nunit 测试中的异常 System.E ..
发布时间:2022-01-21 10:39:28 其他开发

功能<T>用温莎容器注入

这里是使用 Autofac 的 AspComet 项目的代码摘录. public MessageBus(IClientRepository clientRepository, Func messagesProcessorFactoryMethod){this.clientRepository = clientRepository;this.messagesProcessorFactoryMeth ..
发布时间:2022-01-18 12:29:06 其他开发

Castle Windsor - 一个接口的多种实现

在 Castle Windsor 中注册组件时,我们如何将接口的特定实现绑定到依赖于该接口的组件.我事先知道组件需要使用哪个实现. 例如,我根据多个博客和教程中的代码创建了一个示例控制台应用程序. 以下是代码. 公共接口IReport{无效日志报告();}公共接口 ILogger{字符串日志();}公共类 FileLogger : ILogger{公共字符串日志(){返回“记录的数据 ..
发布时间:2021-12-26 10:46:32 C#/.NET

如何使用 Unity 2.0 注入 Log4Net ILog 实现

最终这与设置 log4Net 有关,但通常问题不是特定于日志记录. 一般来说,我想弄清楚的是如何在 Microsoft Unity 2.0 中实现与使用 Castle.Facilities.Logging.LoggingFacility 所获得的相同的东西.即能够声明对记录器的依赖,并使用它被注入的对象的类型初始化记录器. 本着精神值得一千字的测试,这就是我需要的: class Lo ..

IoC,你把容器放在哪里?

我正在将城堡温莎用于我正在处理的宠物项目.我开始注意到我需要在代码的不同位置调用 IoC 容器来创建新对象.这种对容器的依赖使我的代码更难维护. 我用了两种解决方案来解决这个问题 我尝试创建抽象工厂作为容器的包装器,我可以将其注入到需要创建对象的应用程序部分中.这有效但有一些缺点,因为城堡很难将自己的容器作为依赖项注入.所以我必须手动完成,这违背了 IoC 容器的全部目的. 我使 ..

城堡温莎传递构造函数参数

我有一个带有一些属性的 IAddress 类.然后我有一个实现这个接口的具体类型.这个具体类型有几个我可以使用的不同构造函数.如何在运行时将参数值传递给这些构造函数之一?我不能使用配置文件,因为我将多次重用这个具体类型,每次参数值都会不同. IWindsorContainer container = new WindsorContainer(new XmlInterpreter());IAddr ..

比较 Castle Windsor、Unity 和 StructureMap

在对 Krzysztof 的声明的跟进中,Windsor 比其他 IoC 做得更多,我想了解这些 IoC 是如何与之抗衡的彼此以及温莎城堡提供的好处/额外设施. 有比较吗?有人可以帮助我了解 Castle Windsor 比其他 IoC 提供的附加功能吗 解决方案 参见 此处 和 此处 对几种 IoC 进行了非常彻底的技术比较容器,虽然现在有些过时(它们来自 Windsor 2.0 ..

为什么不使用 IoC 容器来解决实体/业务对象的依赖关系?

我了解 DI 背后的概念,但我只是在学习不同的 IoC 容器可以做什么.似乎大多数人都提倡使用 IoC 容器来连接无状态服务,但是将它们用于像实体这样的有状态对象呢? 无论是对还是错,我通常用行为填充我的实体,即使该行为需要外部类.示例: 公共类订单:IOrder{私人字符串_ShipAddress;私人 IShipQuoter _ShipQuoter;公共订单(IOrderData Or ..

Ioc/DI - 为什么我必须引用应用程序入口点中的所有层/程序集?

(与此问题相关,EF4: 为什么开启延迟加载后还要开启代理创建?). 我是 DI 的新手,请耐心等待.我知道容器负责实例化我所有注册的类型,但为了做到这一点,它需要引用我的解决方案中的所有 DLL 及其引用. 如果我不使用 DI 容器,我就不必在我的 MVC3 应用程序中引用 EntityFramework 库,只需要引用我的业务层,它会引用我的 DAL/Repo 层. 我知道在 ..