Unity中的依赖图解析

时间:2012-02-03 00:49:17

标签: .net unity-container

有人能否了解Unity如何自动执行依赖图解析?我不是在寻找算法的代码,而只是一个简单的解释,也许是某种例子或类比。

2 个答案:

答案 0 :(得分:2)

Unity是一个可扩展的库,因此可以自定义和更改其依赖项解析的方式。但是,默认构建计划如下所示:

  1. 根据请求的类型开始构建
  2. 查找类型
  3. 上最长的构造函数
  4. 对每个构造函数参数类型
  5. 转到(1.)
  6. 使用结果对象创建实例
  7. 查找标有[DependencyAttribute]
  8. 的所有公共属性
  9. 针对每种房产类型
  10. 转到(1.)
  11. 将属性值设置为生成的对象
  12. 返回创建的对象
  13. 可以在多个阶段考虑对象的构建。这个MSDN链接很好地总结了各个阶段以及每个阶段默认执行的内容:UnityBuildStage

答案 1 :(得分:1)

这只是一个图遍历问题。它可以是深度优先,或广度优先或谁知道还有什么。但它真的很简单。

解决问题

T(X, Y)

首先解析XY。但如果X

X(A, B)

和Y是

Y(Z)

也可以解析AB以及Z。继续前行,直到到达叶节点。