2009-01-19 33 views
2

我在兩個不同的.NET程序集中有兩個類A和B:AssemblyA和AssemblyB。如何從程序集繼承類而不強制用戶引用兩個程序集

我想讓B類繼承A類,但是我希望那樣使用B類只需要引用AssemblyB(而不是AssemblyA和AssemblyB)。

由於項目的限制,我需要保持兩個程序集分開,所以我不能使用合併工具來合併兩個程序集。

請注意,類的實際繼承不是必須的 - 我希望能夠將A中的邏輯從AssemblyB作爲類B的一部分運行,儘可能少地重寫功能。

有沒有辦法做到這一點?它以這種方式

回答

9

號的想法 - 想在下面的蜉類型:

public class B : A 
{ 
     public void Foo() 
     { 
      this.// Cursor is here 
     } 
} 

你怎麼能指望智能感知知道什麼是可用的,如果它不知道什麼是A類?編譯器如何能夠驗證方法調用等?

瞭解繼承鏈上的父類。這意味着引用這兩個項目。如果你不想這樣做,不要使用繼承 - 讓B編寫A而不是派生它。用戶在執行時仍然需要A的二進制文件,但我不認爲他們需要在Visual Studio中添加引用。 (另一方面,如果他們要調試代碼,他們可能會想要確保二進制文件位於正確的位置......)