【发布时间】:2013-08-30 03:16:28
【问题描述】:
我的项目中有一组 .NET 程序集。我希望按它们的依赖关系对它们进行排序。
如果我有(例如):
IEnumerable<Assembly> unsorted = LoadAssembliesFromFolder();
我希望能够打电话:
var IEnumerable<Assembly> sorted = unsorted.SortByDependency();
实际上,结果集希望最终看起来像 Visual Studio 中的项目构建顺序对话框。
有什么想法吗?我真的不想采用可能需要相当长的迭代方法。
干杯
【问题讨论】:
-
我认为这里除了迭代之外没有其他方法。
-
你需要算法吗?
-
你想如何处理循环引用? (例如框架中的
System和System.Xml相互引用) -
好问题 - 我不需要对系统库进行排序,只需要对我自己的库进行排序,但我怀疑在我的库集中,循环引用仅存在于库的同一“级别”(即类似的依赖集)意味着两者之间的顺序并不重要。
标签: c# .net reflection