ioc-container相关内容

在 Web 应用程序中注册 shutdownHook

我们如何在网络应用程序中注册Shutdown钩子? 有什么办法可以在 web.xml 或 applicationContext.xml 中注册它? 我知道如果我们在主类中使用应用程序,那就很简单了. ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("ApplicationConte ..
发布时间:2021-12-15 15:06:35 Java开发

在单元测试中使用 DI 容器

我们一直在使用 Simple Injector 并在相当大的应用中取得了巨大成功.我们一直在为我们所有的生产类使用构造函数注入,并配置 Simple Injector 来填充所有内容,并且一切都很顺利. 不过,我们还没有使用 Simple Injector 来管理单元测试的依赖树.相反,我们一直在手动更新所有内容. 我只花了几天时间完成了一次重大重构,几乎所有时间都用于修复单元测试中这 ..

Windsor - 从容器中拉出瞬态对象

如何从容器中拉出本质上是瞬态的对象?我是否必须在容器中注册它们并注入需要类的构造函数?将所有内容注入构造函数的感觉并不好.也只是对于一个类,我不想创建 TypedFactory 并将工厂注入需要的类. 我想到的另一个想法是根据需要“新"它们.但我也在我的所有类中注入了一个 Logger 组件(通过属性).因此,如果我新建它们,则必须手动实例化这些类中的 Logger.我怎样才能继续在我的所有 ..
发布时间:2021-12-02 13:35:55 C#/.NET

Autofac 将参数传递给嵌套类型

我在 WCF 服务中使用 Autofac 作为 IoC.我有一种情况,我想将对象传递给嵌套类型(即未直接解析的类型,但在解析另一种类型时).据我了解,将此对象作为构造函数参数传递是 Autofac 中的首选方式.下面是这种情况的一个例子. 嵌套类型: 公共类 EventLogger;:IEventLogger{public EventLogger(IRepository reposi ..
发布时间:2021-11-30 20:04:45 C#/.NET

Autofac:在一个组合后面隐藏多个逆变实现

我被这个SO问题触发关于 Autofac 的(.NET 4.0)协方差和逆变支持,现在我正在尝试实现类似的东西,但没有任何运气. 我想要实现的是以这样的方式配置 Autofac,当我解析单个具体的 IEventHandler(为了演示使用 container.Resolve,但通常当然使用构造函数注入),Autofac 将返回一个 MultipleDispatchEventHandler,它 ..
发布时间:2021-11-30 20:03:08 C#/.NET

DI/IoC 容器性能基准比较?

我发现了一些 2008 年的基准测试结果,用于测试几个顶级 .NET DI/IoC 容器的性能 此处.但我一直无法找到任何更新的结果.是否有任何基准可以比较一些大型 IoC 容器(StructureMap、Unity、Ninject、Autofac、Castle Windsor 等)? 解决方案 我不建议使用性能基准来选择 IoC 容器.还有很多很多更重要的因素,例如功能集、开发路线图和可 ..
发布时间:2021-11-30 20:02:20 C#/.NET

Autofac 运行时参数

我是 autofac 的新手,希望了解将运行时值传递给构造函数的最佳实践.我已经阅读了一堆 stackoverflow 问题,其中提出了这个问题,但没有一个是完全充实的.我们是否应该使用委托、工厂来创建服务等.我知道传递容器并不是实现这一目标的最佳方式. 在我的特殊情况下,我有一个服务可以访问多个依赖项,例如日志记录、数据提供程序等.除了传递的少数服务之外,我还有需要捕获的运行时参数,例如用 ..
发布时间:2021-11-30 20:01:26 C#/.NET

如何使用 Autofac 使用方法连接事件?

是否可以通过接口/类(通过构造函数和属性注入)将事件连接到 Autofac 的方法而不是整个对象.我想在函数级别而不是类型级别进行绑定.我希望以编程方式完成以下工作(在 C# 中): someType.Output += someOtherType.Input; 例如 Spring.net 确实支持以下构造来实现: ..
发布时间:2021-11-30 19:57:33 C#/.NET

容器构建完成后添加服务

是否可以在运行时注册服务,这意味着在构建了 ContainerBuilder 并且创建了 Container(以及 ContainerBuilder代码>处置)? 解决方案 是的,你可以,使用 ContainerBuilder 上的 Update 方法: var newBuilder = new ContainerBuilder();newBuilder.Register...;newB ..
发布时间:2021-11-30 19:55:02 其他开发

MVC,EF - Unity 中的 DataContext 单例实例 Per-Web-Request

我有一个 MVC 3 Web 应用程序,我在其中使用实体框架进行数据访问.此外,我简单地使用了存储库模式,例如所有与产品相关的东西都在“ProductRepository"中处理.并且所有与用户相关的内容都在“UserRepository"中处理. 因此,我使用 UNITY 容器来创建 DataContext 的单例实例,并将其注入到每个存储库中.在 Google 上快速搜索,每个人都建议您 ..

使用 Spring 进行自注入

我在 Spring 3.x 中尝试了以下代码,但失败了 BeanNotFoundException 并且它应该根据我之前问过的一个问题的答案 - 我可以使用 Spring 注入同一个类吗? @Service公共类 UserService 实现服务{@自动连线私人服务自我;} 自从我用 Java 6 尝试这个之后,我发现以下代码工作正常: @Service(value = "someServi ..
发布时间:2021-11-25 18:41:41 Java开发

如何避免依赖注入构造函数的疯狂?

我发现我的构造函数开始看起来像这样: public MyClass(Container con, SomeClass1 obj1, SomeClass2, obj2.... ) 随着参数列表的不断增加.既然“Container"是我的依赖注入容器,为什么我不能这样做: public MyClass(Container con) 每个班级?有什么缺点?如果我这样做,感觉就像我在使用美化的静态 ..