我可以在一个解决方案中使用其他项目中主项目的类和控件吗?

时间:2010-03-24 01:13:00

标签: c# visual-studio-2008 projects-and-solutions

我应该如何将源文件划分为项目(在一个解决方案中)到

  1. 能够在更相对独立的应用程序中使用通用类,
  2. 避免需要大量的dll(最好是每个应用程序都在一个文件中),
  3. 保持快速?
  4. 有工作(数据处理)类,用户控件,一些实用程序类和应用程序的表单。

4 个答案:

答案 0 :(得分:5)

您可以通过创建类库来创建单独的程序集,并在解决方案中的其他项目中使用该库。只需将可重用的类放在类库项目中,并将应用程序中的项目引用添加到该库中。

每次将代码分离为单独的(可重用的)程序集时,它会在运行时添加一个额外的DLL(类库项目)作为需求,但这非常小。

执行此操作时,性能没有真正的(重大)变化。这是一种非常普遍的做法。

答案 1 :(得分:1)

您应该为每个逻辑单元类创建类库项目,然后在每个使用它们的项目中添加对库的引用。

例如,您可以拥有一个Common库,其中包含其他所有内容使用的基本类,也可能包含一个包含用户控件的Controls库。

每个类的逻辑单元都可以放在同一个库或单独的库中的命名空间中;你需要决定哪个。

答案 2 :(得分:1)

放弃避免大量DLL的第二个要求是个好主意。如果将公共代码放入单个“公共”DLL中,则每次添加或修改任何类时都需要重新编译。这可能会给你一个糟糕的版本问题,比管理大量的DLL更糟糕。

您应该根据它们提供的功能将公共代码分组到单独的DLL中。因此,一个用于数据访问,一个用于用户控件,一个用于每种类型的实用程序功能等。然后,如果您有访问数据的Web服务,则在向单个DLL添加新用户控件时不需要重新编译服务。只有那些依赖于更改的应用才需要重新编译。

答案 3 :(得分:0)

您可以将公共类放入一个程序集(比如CommonUtils),然后在分组中使用名称空间来指示它们如何拆分