【发布时间】:2015-04-14 22:23:40
【问题描述】:
我得到了一个项目,我需要做一件我以前从未做过的事情。
我有一个旧的解决方案,它的设计模式很糟糕。因此,为了改进解决方案并使其更加模块化,我需要删除一个名为 Remote Services 的文件夹,并从中制作一个 dll,以便在需要时用于其他未来的解决方案,删除与旧解决方案的任何相邻依赖项。此远程服务用于让您能够从特定的应用程序和 PC 软件连接到一些测量仪器,以导出和导入数据。
这个删除服务分为两个项目,接口和实现。在接口中,我有我需要的必要接口、枚举和 dto。从实现中,我“只需要”查看旧的解决方案并复制类和方法并更好地组织它。但是后来,我遇到了一个问题,即远程服务中的很多类和方法使用旧解决方案上其他文件夹/项目中的其他接口、方法和类型。
所以,主要问题是。如何使用与旧解决方案相同的方法创建一个独立的 dll,但删除此依赖项和对其他项目的引用?每次我看到对远程服务之外的其他类的依赖时,我应该在我的 dll 上创建一个接口还是什么?我真的不知道。
如果有人能给我提示如何组织这将不胜感激。我可以稍后放一张旧解决方案的屏幕截图和我的 dll 的解决方案。
【问题讨论】:
-
没有具体的例子很难说什么。理想情况下,您的解决方案中根本没有循环依赖。每当 ProjectA 引用 ProjectB 时,都不应有从 ProjectB 到 ProjectA 的引用。示例:您的 BusinessLogic 项目应该引用 DataAccess 项目,而不是相反。但这可能是一个重大的重构。一个快速而肮脏的解决方案是创建一个项目,其中包含从其他项目引用的所有接口。
-
您好,感谢您的回答。例如,在我的旧解决方案中,我有如下文件夹:a) 应用程序 b) 演示 c) 通用 d) 远程服务 .... 就像我说的,在远程服务上,我的类的方法与其他文件夹有依赖关系,例如例如,我需要 Common 文件夹中的一个类,该类需要计算我需要在远程服务上发送的一些值。但是由于现在远程服务是我的 dll,并且在该解决方案中我没有 Common 文件夹,因此我在 dll 上缺少依赖项。但我不能依赖旧的解决方案。
-
那么,我应该如何在我的 dll 上使用与旧解决方案相同的方法,但没有依赖项。?我真正需要的一些类或接口应该在远程服务之外的其他地方计算/断言。但我真的需要获取值/类。
标签: c# .net dll dependencies .net-assembly