2016-08-19 109 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,你没有引用任何东西。