inversion-of-control相关内容

我应该在哪里使用 Ninject 2+ 进行注入(以及如何安排我的模块?)

我有一个解决方案,其中包含两个相关的(与此问题相关的)项目,以及其他一些项目; 具有其他几个项目使用的功能的类库. ASP.NET MVC 应用程序. 我的问题基本上是我应该在哪里使用 Ninject 2 进行 IoC,考虑...... 类库需要一些 DI 爱,其中包括需要 Web 请求特定会话对象的存储库类(想想工作单元). MVC 应用程序需要 DI,因为在 Ninjec ..
发布时间:2021-12-03 15:20:29 其他开发

依赖注入(DI)“友好"图书馆

我正在考虑设计一个 C# 库,它将有几个不同的高级函数.当然,那些高级功能会尽可能使用SOLID类设计原则来实现.因此,可能会有供消费者定期直接使用的类,以及那些更常见的“最终用户"类的依赖项的“支持类". 问题是,设计库的最佳方法是什么: DI 不可知 - 尽管为一两个常见 DI 库(StructureMap、Ninject 等)添加基本“支持"似乎是合理的,但我希望消费者能够将库与 ..
发布时间:2021-12-01 09:25:43 C#/.NET

运行时的 Autofac 绑定

我目前使用 Autofac 进行简单的构造函数注入,没有任何问题.但是我想知道的是如何在运行时解决依赖关系.下面的示例显示了我们可以导出文档的多种方式.通过简单的构造函数注入,IExport 的具体实现在运行时得到解决.但是,需要做的是从下拉列表中解决用户选择上的 IExport,这将在我的容器构建后发生.是否有任何示例可以说明我如何实现这一目标? 公共接口IExport{无效运行(字符串内容) ..
发布时间:2021-11-30 20:04:56 C#/.NET

AsSelf 在 autofac 中做什么?

autofac 中的 AsSelf() 是什么?我是 autofac 的新手,AsSelf 到底是什么,下面两者有什么区别? builder.RegisterType().AsSelf().As();builder.RegisterType().As(); 谢谢! 解决方案 通常,您希望将接口而不是实现注入到您的类中. 但让我们假设您有: interface IFooServi ..
发布时间:2021-11-30 20:02:09 C#/.NET

Autofac 运行时参数

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

Autofac - 如何从单例中解析 ISomething 的 Func,其中 ISomething 是 InstancePerHttpRequest

我正在尝试使用 Autofac 将依赖项注入 MVC 4 应用程序中的 FluentValidation.我想我已经制定了策略,但我一直在解决我的每个请求 ISomething 的问题. 场景如下:我有一个源自 FluentValidation 的 AbstractValidator 的验证器.我读过 FluentValidation 验证器作为单例执行得最好,所以我的构造函数需要一个 Fu ..
发布时间:2021-11-30 20:00:45 其他开发

在 C# 控制台应用程序中正确使用 Autofac

我是 Autofac 的新手,所以我对菜鸟问题深表歉意.我阅读了互联网上的每本手册,解释了使用 Autofac(或任何其他工具,如 Structuremap、Unity 等)时的基础知识.但是我找到的所有示例都是基础知识.我需要知道如何在我的代码中更深入地实现 Autofac.让我试着用这个例子来解释我需要知道什么,一个控制台应用程序. class 程序{静态无效主(字符串 [] args){v ..
发布时间:2021-11-30 19:59:48 C#/.NET

一个接口与 DI 的多种实现

现在我正在尝试使用 Autofac 的 IOC 容器自学依赖注入模式.我想出了一个非常简单的例子,如下所示.虽然这个例子很简单,但我没有让它正常工作. 这是我的类/接口: 两个怪物,都实现了 IMonster 接口: interface IMonster{无效介绍你自己();}吸血鬼类:IMonster{公共代表吸血鬼工厂(int age);int mage;公共吸血鬼(int年龄) ..
发布时间:2021-11-30 19:55:11 C#/.NET

特定类类型的 Autofac 扫描程序集

我已经开始使用 Autofac 并想扫描一些 DLL 并让 Autofac 注册其中的一些类. 我感兴趣的类都继承自 PluginBase 类,但下面的代码似乎没有注册它们.有人可以帮忙吗? var assembly = AppDomain.CurrentDomain.GetAssemblies();var builder = new ContainerBuilder();builder ..
发布时间:2021-11-30 19:54:23 C#/.NET

Web 应用程序中的 Autofac,我应该将容器存储在哪里以便于访问?

我对使用 Autofac 还是很陌生,我在文档和示例中遗漏的一件事是如何轻松地从 Web 应用程序的不同位置访问已配置的容器. 我知道我可以使用 Autofac 控制器工厂来自动解决控制器的构造函数注入依赖项,但是您可能需要解决的其他尚未注入的内容如何. 是否有我不知道的明显模式? 谢谢! 解决方案 首先尽量不要过度使用 IoC 容器.它非常适合“连接"控制器、视图和服务 ..
发布时间:2021-11-30 19:54:09 C#/.NET

如何在 AutoFac 中使用属性注入?

在控制台应用程序中,我使用的是 Log4Net,而在 Main 方法中,我正在获取记录器对象.现在,我想通过让所有类从具有 ILog 属性的 BaseClass 继承并应该通过属性注入而不是构造函数注入设置来使这个日志对象在我的所有类中可用. 我正在使用 AutoFac IoC 容器,如何将我的日志对象注入我的每个类的 Log 属性? 实现这一目标的最佳/最简单的方法是什么? 有 ..
发布时间:2021-11-30 19:51:32 C#/.NET

解析 IContainer

从应用程序的类内部获取 Autofac 容器的建议方法是什么?Autofac 是否提供解析类上的 IContainer 属性,或者我是否需要在构建容器后将其全局存储? 解决方案 对于大多数用途,您将需要 IComponentContext 或 ILifetimeScope.这些由 Autofac 自动提供,因此您需要做的就是对其中一个建立(构造函数)依赖项,然后将注入当前实例. 两个 ..
发布时间:2021-11-30 19:51:24 C#/.NET