inversion-of-control相关内容
我已经制作了一个三层应用程序,参考在这个答案: DAL with Repositories ->BLL 与服务和 IRepository
..
我有一个解决方案,其中包含两个相关的(与此问题相关的)项目,以及其他一些项目; 具有其他几个项目使用的功能的类库. ASP.NET MVC 应用程序. 我的问题基本上是我应该在哪里使用 Ninject 2 进行 IoC,考虑...... 类库需要一些 DI 爱,其中包括需要 Web 请求特定会话对象的存储库类(想想工作单元). MVC 应用程序需要 DI,因为在 Ninjec
..
哪些 C#/.NET 依赖注入框架值得研究?您对它们的复杂性和速度有何看法. 解决方案 edit(非作者提供):https://github.com/quozd/awesome-dotnet/blob/master/README.md#ioc: Castle Windsor - Castle Windsor 是同类最佳、成熟的控制反转容器,可用于 .NET 和银光 Unity -
..
我正在考虑设计一个 C# 库,它将有几个不同的高级函数.当然,那些高级功能会尽可能使用SOLID类设计原则来实现.因此,可能会有供消费者定期直接使用的类,以及那些更常见的“最终用户"类的依赖项的“支持类". 问题是,设计库的最佳方法是什么: DI 不可知 - 尽管为一两个常见 DI 库(StructureMap、Ninject 等)添加基本“支持"似乎是合理的,但我希望消费者能够将库与
..
我目前使用 Autofac 进行简单的构造函数注入,没有任何问题.但是我想知道的是如何在运行时解决依赖关系.下面的示例显示了我们可以导出文档的多种方式.通过简单的构造函数注入,IExport 的具体实现在运行时得到解决.但是,需要做的是从下拉列表中解决用户选择上的 IExport,这将在我的容器构建后发生.是否有任何示例可以说明我如何实现这一目标? 公共接口IExport{无效运行(字符串内容)
..
我想知道在其自身内注册容器是否有任何副作用 IContainer 容器;ContainerBuilder builder = new ContainerBuilder();容器 = builder.Build();builder.RegisterInstance(container).As(); 并像这样使用它 builder.RegisterType().As().
..
autofac 中的 AsSelf() 是什么?我是 autofac 的新手,AsSelf 到底是什么,下面两者有什么区别? builder.RegisterType().AsSelf().As();builder.RegisterType().As(); 谢谢! 解决方案 通常,您希望将接口而不是实现注入到您的类中. 但让我们假设您有: interface IFooServi
..
我是 autofac 的新手,希望了解将运行时值传递给构造函数的最佳实践.我已经阅读了一堆 stackoverflow 问题,其中提出了这个问题,但没有一个是完全充实的.我们是否应该使用委托、工厂来创建服务等.我知道传递容器并不是实现这一目标的最佳方式. 在我的特殊情况下,我有一个服务可以访问多个依赖项,例如日志记录、数据提供程序等.除了传递的少数服务之外,我还有需要捕获的运行时参数,例如用
..
我正在尝试使用 Autofac 将依赖项注入 MVC 4 应用程序中的 FluentValidation.我想我已经制定了策略,但我一直在解决我的每个请求 ISomething 的问题. 场景如下:我有一个源自 FluentValidation 的 AbstractValidator 的验证器.我读过 FluentValidation 验证器作为单例执行得最好,所以我的构造函数需要一个 Fu
..
我是 Autofac 的新手(不是 DI).情况如下: 我有这些接口: 公共接口IQuery:查询{}公共接口 IQueryHandler其中 TQuery : IQuery{TResult 处理(TQuery 查询);} 并且在我的解决方案中有很多实现: class GetPersonQuery : IQuery{ }类 GetPersonQueryHandler : IQueryH
..
我是 Autofac 的新手,所以我对菜鸟问题深表歉意.我阅读了互联网上的每本手册,解释了使用 Autofac(或任何其他工具,如 Structuremap、Unity 等)时的基础知识.但是我找到的所有示例都是基础知识.我需要知道如何在我的代码中更深入地实现 Autofac.让我试着用这个例子来解释我需要知道什么,一个控制台应用程序. class 程序{静态无效主(字符串 [] args){v
..
我正在使用 Autofac.我想根据我应用于构造函数参数的属性注入依赖项的不同实现.例如: class CustomerRepository{公共 CustomerRepository([CustomerDB] IObjectContainer db) { ... }}类 FooRepository{公共 FooRepository([FooDB] IObjectContainer db) {
..
现在我正在尝试使用 Autofac 的 IOC 容器自学依赖注入模式.我想出了一个非常简单的例子,如下所示.虽然这个例子很简单,但我没有让它正常工作. 这是我的类/接口: 两个怪物,都实现了 IMonster 接口: interface IMonster{无效介绍你自己();}吸血鬼类:IMonster{公共代表吸血鬼工厂(int age);int mage;公共吸血鬼(int年龄)
..
我是 IoC 的新手,正在我当前的项目中使用 Autofac. 我有以下两个类: 公共类 UserService : IUserService{私有只读 IUserRepository _repo;私有只读 IMailService _mailService;公共用户服务(IUserRepository 存储库,IMailService 邮件服务){_repo = 回购;_mailServ
..
我已经开始使用 Autofac 并想扫描一些 DLL 并让 Autofac 注册其中的一些类. 我感兴趣的类都继承自 PluginBase 类,但下面的代码似乎没有注册它们.有人可以帮忙吗? var assembly = AppDomain.CurrentDomain.GetAssemblies();var builder = new ContainerBuilder();builder
..
我对使用 Autofac 还是很陌生,我在文档和示例中遗漏的一件事是如何轻松地从 Web 应用程序的不同位置访问已配置的容器. 我知道我可以使用 Autofac 控制器工厂来自动解决控制器的构造函数注入依赖项,但是您可能需要解决的其他尚未注入的内容如何. 是否有我不知道的明显模式? 谢谢! 解决方案 首先尽量不要过度使用 IoC 容器.它非常适合“连接"控制器、视图和服务
..
在控制台应用程序中,我使用的是 Log4Net,而在 Main 方法中,我正在获取记录器对象.现在,我想通过让所有类从具有 ILog 属性的 BaseClass 继承并应该通过属性注入而不是构造函数注入设置来使这个日志对象在我的所有类中可用. 我正在使用 AutoFac IoC 容器,如何将我的日志对象注入我的每个类的 Log 属性? 实现这一目标的最佳/最简单的方法是什么? 有
..
从应用程序的类内部获取 Autofac 容器的建议方法是什么?Autofac 是否提供解析类上的 IContainer 属性,或者我是否需要在构建容器后将其全局存储? 解决方案 对于大多数用途,您将需要 IComponentContext 或 ILifetimeScope.这些由 Autofac 自动提供,因此您需要做的就是对其中一个建立(构造函数)依赖项,然后将注入当前实例. 两个
..
我对 IDisposable 实现中的 Dispose() 方法和 Autofac 用法有点困惑 假设我对我的对象有一定的深度: Controller 依赖于 IManager; Manager 依赖于 IRepository; Repository 依赖于 ISession; ISession 是 IDisposable. 这导致以下对象图: 新控制器(新经理(新的存储
..
是否可以从 Startup 中的 ConfigureServices 方法解析 IOptions 的实例?文档明确说明:> 不要在 Startup.ConfigureServices 中使用 IOptions 或 IOptionsMonitor. 可能存在不一致的选项状态,原因是服务注册的顺序. 您可以使用 serviceCollection.BuildServiceProvider()
..