在.NET中管理依赖关系树的最佳方式是什么?

前端之家收集整理的这篇文章主要介绍了在.NET中管理依赖关系树的最佳方式是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我最后一个项目中,我们使用MSBuild作为脚本语言. (是的,真的!)我们还写了数百个定制的MSBuild任务,对于在C#中更有意义的部分. (我甚至写了一个MSBuild任务来生成一个MSBuild任务的样板代码,是的,它消耗了它.)

虽然我不建议任何人采取同样的方法,但我发现非常有帮助的一件事是内置的依赖关系管理.正如你所料,很容易表达依赖关系,让MSBuild照顾满足他们.例如,我们软件中的几乎每一步都需要将某些文件集复制到某个位置.你可以很容易地写:

Step1: CopyFiles
Step2: CopyFiles,Step1

当您执行Step2时,它只会复制一次文件.

构建和满足依赖关系树在软件中很常见.我希望MSBuild团队采用其依赖管理代码,将其与MSBuild分离,并将其移动到任何可以使用它的.NET Framework中.不好意思,你觉得这是怎样管理依赖关系的最佳选择?

我想你可以使用像Spring这样的IOC容器来获得这种行为.

实例化任何只能以单例运行一次并且任务对象的构造函数运行任务的任务.然后,任何随后对该任务依赖的对象将获得对已经运行的任务的引用,并能够获取该任务的结果,或者可以推断该任务已经成功运行.

在spring配置中,最终会有许多链接在一起的任务,每个都引用其构造函数配置中的其他任务.
这种方法是最灵活的,你并不局限于“任务”或任何太重的事情.

我猜测任何工作流程库也有类似的概念.但我不是很熟悉这些.

我认为任何更小的东西,人们必须使用访问者模式滚动自己的对象图和界面,也可以使用Dictionary来保存状态.

猜你在找的设计模式相关文章