我有两个项目; A和B,其中B需要使用项目A中的一些类。因此,我将B添加到A的解决方案中,并且在B中我添加了对项目A的引用。
这是明智的吗?或者我应该把这些类放在类库中?
我看到如果我还想从项目A中的菜单选项打开表单/程序B,则A需要对B的引用。如果B已经引用了A,那么这是不可能的。但是如果我使用公共类的类库,那就没关系,因为B不需要A引用。
这听起来合乎逻辑吗?很高兴知道将项目放在同一个解决方案中的典型原因是什么,如果建议使用库积极地重构两个项目之间的公共代码,即使它只是几个类..但我从来没有做过我自己的库,所以有点不确定何时使用它。如果你有一些原则会很高兴听到..
答案 0 :(得分:3)
听起来像是一个类库的完美用例。
将常用功能放在第三个类库项目中,让A和B引用它。
答案 1 :(得分:2)
如果您计划在两个项目中使用相同的类,则可以使用共享库。这不仅仅是方便。具有相同名称,名称空间和成员的两个相同的类被认为是完全不同的类型,如果它们在不同的程序集(包括EXE)中定义。将公共类移动到类库C中,并在A和B中引用C。众所周知的指导校长是DRY:不要重复自己。
-Oisin
答案 2 :(得分:1)
通常,类库用于多个项目之间的通用功能。换句话说,正是你正在处理的事情。所以你应该把它拉到一个类库中。
从那里,有两种可能性:如果两个项目之间的共同功能总是相同,那么它应该是一个单独的项目。如果它可以改变为一个而不是另一个,则将其复制到两个项目中。您仍然应该将它重构为类库,因为这样可以使它最初更容易。另请注意,在第一种情况下,将会有另一个项目需要维护,并有自己的发布计划和管理难题。
通常,单个解决方案中的多个项目是用户界面和各种库以及其他支持项目。如果有多个用户界面,通常会将它们发送到同一系统,例如用户界面和管理界面,或者可能是不同平台的界面。
答案 3 :(得分:0)
原则上,应避免循环依赖,因此,创建类库并添加对它的引用是有意义的。
答案 4 :(得分:0)
类库是一个很好的解决方案,特别是如果您计划使用A参考B。
如果您需要A(或B)来实际实现这些类的某些功能,您可以考虑创建一个包含对象接口的类库,这样A和B就可以在它们的接口下来回传递对象实施了自己。