2016-08-19 170 views
0

我有項目B,具體取決於項目A,它是一個擁有自己的依賴關係的庫。c#庫的鏈接依賴關係

在項目A我引用定義Dependency1Base<T>Dependency2Class的組件,並定義MyClass這樣的:

namespace MyNamespace 
{ 
    public class MyClass: Dependency1Base<Dependency2Class> 
    { 
    } 
} 

在項目B,我只是參考項目A,並嘗試實例MyClass

namespace MyNamespace 
{ 
    public class B 
    { 
     public void main() 
     { 
      var myInstance = new MyClass(); 
     } 
    } 
} 

項目A建立良好,但是當我嘗試構建項目B時,我得到一個錯誤提示我認爲Dependency1BaseDependency2Class是在未引用的程序集中定義的。所以我想知道是否有一種方法可以鏈接項目A中的這些定義,以便我不必將這些引用添加到項目B?或者我是否總是需要在任何其他使用MyClass的項目中引用項目A的依賴關係?

+0

爲什麼你不想在Project'B'中添加引用? –

+1

MyClass從Dependency1Base繼承的事實是MyClass的公共接口的一部分 - 所以如果你想使用MyClass,你需要引用程序集Dependency1Base和Dependency2Class,被定義。 – Blorgbeard

+0

@Blorgbeard所以,要使用在引用程序集中定義的類,我總是需要引用定義其祖先類的所有程序集? –

回答

0

是的,您確實需要引用您在項目中使用的所有類或對象。但你不必更多地參考。

如果你有一個類CB繼承,這本身從A繼承:

C,必須引用B,如果你使用一些屬性或方法來從A,必須引用A以及

B,必須引用A

在'A,你沒有引用任何東西。