c# - (自动)依赖注入(inject)绑定(bind)机制

标签 c# .net dependency-injection ioc-container late-binding

创建依赖项注入(inject)绑定(bind)的两种常见机制(例如通过 IOC 容器)来自 XML 配置或命令式代码块。在这些情况下,键值对是显式的(即键 = 请求的类型,值 = 返回的类型)。

仍然存在第三种“启发式”方法,其中仅向应用程序/IOC 容器提供 [IMyClass] 键,然后容器反射(reflect)一组应用程序程序集依赖项以找到所有名称匹配的具体类 [MyClass]。换句话说,“返回类型”值是发现的而不是声明的。

我想知道的有两个方面:

  1. 哪些 IOC 容器(或其他后期绑定(bind)工具)允许启发式方法?这种方法有更通用的名称吗?
  2. 除了我列出的三种绑定(bind)技术外,还有其他用于实践的绑定(bind)技术吗?

最佳答案

这称为基于约定的配置自动注册,并受以下 .NET DI 容器支持:

用于 DI 容器的最常见的配置机制是

  • XML
  • 代码作为配置
  • 基于约定的配置

第四种但不常见的方法是使用属性。 Managed Extensibility Framework是这种方法最突出的例子,它在 Java 中更为常见。

关于c# - (自动)依赖注入(inject)绑定(bind)机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7899975/

相关文章:

c# - 如何将 .NET 4 的 XmlConvert.IsWhitespaceChar 向后移植到 .NET 3.5?

c# - 按值从 KeyValuePair 列表中删除重复项

c# - 更新 DataTable 中的行 - 为什么这不起作用?

c# - 使用 CaSTLe Windsor 解决混合开闭泛型问题

java - 确定哪些 Spring @Value 注解注入(inject)失败

c# - 由于缺少文件,Visual Studio 2010 构建错误

c# - 有没有办法在不抛出异常的情况下等待 TPL 任务?

.Net 4.0 Redistributable - 我在哪里可以找到它?

c# - .Net 反射 : How to invoke a constructor that takes a interface as parameter

c# - 如何使用 Simple Injector 从 ValidationContext 获取服务?