一千萬個為什麽

搜索

在Visual Studio 2008中的解決方案中的項目之間共享代碼,無法構建公共程序集


我為產品Foo創建了一個附加組件。有不同版本的Foo,即版本1,2,3和4。

這些版本具有大多數兼容的API,但並不完全。

我目前有5個項目:

  • DotNetCommon - here are the common methods which could be used if I create an add-on or something other than the Foo product.
  • FooOne
  • FooTwo
  • FooThree
  • FooFour

Foo * -projects包含Foo版本1-4的加載項。

Foo * -projects中有很多重復的文件,因為API中有很多東西對於所有版本的Foo都是相同的。將所有Foo版本常見的內容分開是很好的。

為什麽不為所有版本的Foo創建一個名為FooCommon的公共程序集?

如果我將所有Foo版本的所有類都放入一個新的庫項目中,我仍然需要選擇新FooCommon應該引用的Foo版本。如上所述,它們並不完全相同。

最佳答案

創建包含常用方法的接口:

public interface IFoo
{
   void CommonMethod1();
   void CommonMethod2();
}

從IFoo創建一個抽象基類:

public abstract class FooBase : IFoo
{
  //Implement the common calls here
   public void CommonMethod1()
   {
     //concrete shared code goes here
   }
   public void CommonMethod2()
   {
     //concrete shared code goes here
   }
}

從FooBase創建一次性代碼:

public class FooOne : FooBase 
{    
  //concrete code specific to FooOne goes here 
}



public class FooTwo : FooBase 
{    
  //concrete code specific to FooTwo goes here 
}

轉載註明原文: 在Visual Studio 2008中的解決方案中的項目之間共享代碼,無法構建公共程序集

猜你喜歡