inversion-of-control相关内容

这是 IOC 的典型用例吗?

我当前的应用程序允许用户通过一组管理屏幕定义自定义 Web 表单.它本质上是一个 EAV 类型的应用程序.因此,我无法对 HTML 或 ASP.NET 标记进行硬编码以呈现给定页面.取而代之的是,UI 从服务层请求一个 Form 对象的实例,服务层又使用多个 RDMBS 表构造一个实例.表单包含您希望在这样的上下文中看到的类类型:Form=> IEnumerable=>IEnumerable ..

在类库中实例化 Castle Windsor 容器时的最佳实践是什么?

我想知道在类库中实例化城堡 Windsor 容器的最佳位置在哪里. 我应该在我正在使用的类的构造函数中简单地执行它,还是有一个我不知道的程序集入口点? 谢谢. 解决方案 注入对象图的配置完全取决于实际使用它的应用程序的需求.使用容器的目的是能够在运行时配置依赖项 - 库不知道它将如何使用. 库类的编写方式应该允许您使用您喜欢的任何容器,或者消费者认为合适的穷人依赖注入.将 ..
发布时间:2021-11-26 12:10:51 C#/.NET

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

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

究竟什么是 JavaBean?

我理解,我认为,一个“Bean"是一个带有属性和 getter/setter 的 Java 类. 据我所知,它相当于一个 C struct.是真的吗? 此外,JavaBean 和常规的 class 之间是否存在真正的语法差异? 有没有什么特殊的定义或者Interface? 基本上,为什么会有这样的术语? 还有 Serializable 接口是什么意思? 解决方案 Ja ..

.NET Core DI,为包注册默认实现

如何使用 .NET Core 的 IoC 容器注册默认实现并提供覆盖现有实现的方法? 例如,我可能想创建一个包,为某些服务提供默认实现. namesapce 包{公共接口 ISomeService { }公共类默认值:ISomeService { }} 然后在同一个包中使用此服务. namesapce 包{公开课服务{服务(ISomeService 服务){ }}} 如何注册 ISo ..

通过通用接口/抽象类实现使 .NET Core DI 自动解析类

.NET Core 中是否有一种方法可以注册通用接口,并使其解析与某个实现匹配的类. 比如我有如下界面: 公共接口 IMapper{} 我也有一个抽象类: 公共抽象类 Mapper: IMapper{受保护的映射器(){//一些通用的东西}公共抽象 TTo 映射(TFrom);} 然后我可以像这样创建一个实现: public class UserMapper ..
发布时间:2021-11-24 14:20:51 C#/.NET

在类库中实例化 Castle Windsor 容器时的最佳实践是什么?

我想知道在类库中实例化城堡 Windsor 容器的最佳位置在哪里. 我应该在我正在使用的类的构造函数中简单地执行它,还是有一个我不知道的程序集入口点? 谢谢. 解决方案 注入对象图的配置完全取决于实际使用它的应用程序的需求.使用容器的目的是能够在运行时配置依赖项 - 库不知道它将如何使用. 库类的编写方式应该允许您使用您喜欢的任何容器,或者消费者认为合适的穷人依赖注入.将 ..
发布时间:2021-11-24 11:30:41 C#/.NET

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

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

究竟什么是 JavaBean?

我理解,我认为,一个“Bean"是一个带有属性和 getter/setter 的 Java 类. 据我所知,它相当于一个 C struct.是真的吗? 此外,JavaBean 和常规的 class 之间是否存在真正的语法差异? 有没有什么特殊的定义或者Interface? 基本上,为什么会有这样的术语? 还有 Serializable 接口是什么意思? 解决方案 Ja ..

引用 vs 依赖

继这个问题之后,我现在有以下结构: Wolfie.Core - 包含业务逻辑和实体,还包含存储库接口(例如 IUserRepository) 需要访问存储库的类使用构造函数注入. Wolfie.Data - 引用 Wolfie.Core 并有一个实现 IUserRepository 的 UserRepository 所以到目前为止我很满意.Core 对数据实现一无所知,因此不依赖 ..

在解析公共类的同时注入内部帮助类

我有以下架构,其中引用内部 Helper 类的公共 Service 类存在于另一个程序集中: ApplicationAssembly {公共类小部件{公共小部件(ReferencedAssembly.Service 服务){ ... }}}引用程序集 {公共类服务{公共服务(Helper helper) { ... }}类助手 { ... }} (我意识到我不能将内部类放入公共类的构造函数的参 ..

使用 Linq-to-SQL、IOC 和 Repository 模式预取数据

使用 Linq-to-SQL 我想预取一些数据. 1) 常见的解决方案是处理 DataLoadOptions,但在我的架构中它不起作用,因为: 必须在第一次查询之前设置选项 我正在使用 IOC,所以我没有直接实例化 DataContext(我无法在实例化时执行代码) 我的 DataContext 在网络请求期间是持久的 2) 我看到了另一种可能性,基于在方法中加载数据及其子项 ..

配置设置和 IoC

我使用 IoC (DI) 方法并且通常有参数,这些参数是由最低层(DB 层等)从配置设置(即连接字符串、静态值等)中读取的.最好的方法是什么? 直接在这个最低层读取,即: string sendGridApiKey = ConfigurationManager.AppSettings["SendGridApiKey"]; 它可以工作,但还需要将此密钥添加到单元测试项目的配置文件中.另外, ..

为什么 IoC/DI 在 Python 中不常见?

在 Java 中 IoC/DI 是一种非常普遍的做法,广泛用于 Web 应用程序、几乎所有可用的框架和 Java EE.另一方面,也有很多大型 Python Web 应用程序,但除了 Zope(我听说它的编码应该非常糟糕)IoC 在 Python 世界中似乎并不常见.(如果你认为我错了,请举出一些例子). 当然有几种流行的 Java IoC 框架可用于 Python,例如 springpyt ..

DI 拦截 vs. AOP

来自 Unity 文档: Unity 拦截使您能够有效地捕获对对象的调用并向目标对象添加附加功能.当您想修改单个对象而不是整个类的行为时,拦截很有用,这与使用 装饰模式.它提供了一种在运行时向对象添加新行为的灵活方法. 由于在面向方面的编程中使用了完全相同的 DP(请参阅此处) ...在.NET Framework 中,这些技术中最常用的是后处理和代码拦截.前者是 PostSha ..

Microsoft Unity - 代码到 xml

有人可以提供我应该与 Enterprise Library 4.1 中的 Microsoft Unity 应用程序块一起使用的 XML 配置,以实现与以下相同的结果吗? 使用系统;使用 Microsoft.Practices.Unity;使用 Microsoft.Practices.Unity.InterceptionExtension;命名空间 ConsoleApplication1{课程计 ..
发布时间:2021-11-11 04:36:51 C#/.NET

什么是AOP,简单英语中的依赖注入和控制反转

我试图了解 AOP、依赖注入和控制反转 SPRING 相关概念,但我很难理解. 谁能用简单的英语解释一下? 解决方案 我理解你的困惑,我花了一些时间来理解这些概念是如何关联在一起的.所以这是我对这一切的(某种程度上的个人)解释: 1.控制反转 控制反转 是一种相当通用的设计原则,指的是规范的解耦实际执行时的行为.比较例如, myDependency.doThis(); ..
发布时间:2021-11-11 04:21:30 Java开发

SFig 语言语法是否高效且清晰(并且比 Spring-Framework 的 XML DSL 更好)?

附录编辑: 尚未接受此问题的答案没有任何反馈经验丰富的Spring框架开发人员. 我一直在研究用于 Spring-Framework applicationContext.xml 文件的替代 DSL(其中描述了 bean 初始化和依赖关系以加载到 Spring bean 工厂). 我的动机是,我完全不喜欢 Spring 为此目的使用 XML,也不喜欢迄今为止设计的任何替代方案.出 ..
发布时间:2021-11-11 03:54:58 其他开发