inversion-of-control相关内容

使用带有工作单元的简单注射器Windows 窗体中的存储库模式

我正在尝试在我的 Windows 窗体应用程序中实现 IoC.我的选择落在了 Simple Injector 上,因为它又快又轻.我还在我的应用程序中实现了工作单元和存储库模式.这是结构: 数据库上下文: 公共类 MemberContext : DbContext{公共成员上下文(): base("名称=成员上下文"){ }公共数据库集成员{得到;放;}protected override ..
发布时间:2021-12-08 20:53:09 C#/.NET

如何使用 MVVMLight SimpleIoc?

我正在改进我的软件,它有凌乱的 Messenger.Default(...) 位. 是否有任何备忘单可以了解 MVVMLight SimpleIoc 的用法(不是一般的 IoC 描述)? 解决方案 SimpleIoc Crib sheet: 1) 在 ViewModelLocator 中注册所有接口和对象 class ViewModelLocator{静态 ViewModel ..
发布时间:2021-12-05 16:45:19 C#/.NET

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

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

哪些 .NET 依赖注入框架值得研究?

哪些 C#/.NET 依赖注入框架值得研究?您对它们的复杂性和速度有何看法. 解决方案 edit(非作者提供):https://github.com/quozd/awesome-dotnet/blob/master/README.md#ioc: Castle Windsor - Castle Windsor 是同类最佳、成熟的控制反转容器,可用于 .NET 和银光 Unity - ..
发布时间:2021-12-02 13:45:37 C#/.NET

依赖注入(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

使用 Autofac 注册容器本身

我想知道在其自身内注册容器是否有任何副作用 IContainer 容器;ContainerBuilder builder = new ContainerBuilder();容器 = builder.Build();builder.RegisterInstance(container).As(); 并像这样使用它 builder.RegisterType().As(). ..
发布时间:2021-11-30 20:02:51 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 其他开发

如何在 Autofac 中注册许多开放通用

我是 Autofac 的新手(不是 DI).情况如下: 我有这些接口: 公共接口IQuery:查询{}公共接口 IQueryHandler其中 TQuery : IQuery{TResult 处理(TQuery 查询);} 并且在我的解决方案中有很多实现: class GetPersonQuery : IQuery{ }类 GetPersonQueryHandler : IQueryH ..
发布时间:2021-11-30 20:00:18 C#/.NET

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

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

使用基于构造函数参数属性的 autofac 解决依赖关系

我正在使用 Autofac.我想根据我应用于构造函数参数的属性注入依赖项的不同实现.例如: class CustomerRepository{公共 CustomerRepository([CustomerDB] IObjectContainer db) { ... }}类 FooRepository{公共 FooRepository([FooDB] IObjectContainer db) { ..
发布时间:2021-11-30 19:58:02 其他开发

一个接口与 DI 的多种实现

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

“检测到 Autofac 圆形组件依赖性"错误

我是 IoC 的新手,正在我当前的项目中使用 Autofac. 我有以下两个类: 公共类 UserService : IUserService{私有只读 IUserRepository _repo;私有只读 IMailService _mailService;公共用户服务(IUserRepository 存储库,IMailService 邮件服务){_repo = 回购;_mailServ ..
发布时间:2021-11-30 19:54:44 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