C# 如何向项目注入类以避免循环依赖

C# 如何向项目注入类以避免循环依赖,c#,C#,假设我有两个项目。项目A和项目B。 在项目A中,我有一个名为“组件”的文件夹。为了避免循环依赖,我将这个文件夹“组件”移动到了新的项目C。我的问题是我可以在项目A和项目B中使用项目C。但是我需要在项目C中使用项目A中的一些类,但是由于循环依赖,我不能在项目A中使用项目C引用。那么我如何从项目A到项目C使用这些类呢?在项目A中也使用项目C?谢谢 你不能把这些类也转移到C项目吗?很遗憾,我不能。它们是ProjectA的核心类。它的wpf应用程序基于mvvm模式。重复这个技巧。创建一个新的程序集D以在

假设我有两个项目。项目A和项目B。
在项目A中,我有一个名为“组件”的文件夹。为了避免循环依赖,我将这个文件夹“组件”移动到了新的项目C。我的问题是我可以在项目A和项目B中使用项目C。但是我需要在项目C中使用项目A中的一些类,但是由于循环依赖,我不能在项目A中使用项目C引用。那么我如何从项目A到项目C使用这些类呢?在项目A中也使用项目C?谢谢

你不能把这些类也转移到C项目吗?很遗憾,我不能。它们是ProjectA的核心类。它的wpf应用程序基于mvvm模式。重复这个技巧。创建一个新的程序集D以在a和C之间进行调解。如果不能完全移动类,则可能需要创建接口或包装类型。最终,必须通过添加新的层或相反的方式将事物融合在一起来打破所有循环依赖关系。(从技术上讲,您也可以使用反射来打破编译时依赖关系并将其移动到运行时,但这会对可读性、可维护性和性能产生负面影响。)我假设MVVM项目是前端层,而其他项目是后端或业务逻辑。如果您有依赖于MVVM核心类型的类,那么您需要考虑重新设计该结构。@ChetanRanpariya也许您是对的。但我们不能简单地重新设计我们的项目。我们在工业工厂工作。我们还不能重构,因为它很耗时,因为我们有更重要的任务。