2016-08-19 8 views
0

私はAというプロジェクトに依存してプロジェクトBを持っています。それは自身の依存関係を持つライブラリです。プロジェクトAC#ライブラリのリンク依存関係

私はDependency1Base<T>Dependency2Classを定義するアセンブリを参照し、このようなMyClass定義:プロジェクトB

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

を、私はプロジェクトAを参照し、インスタンスにMyClass

namespace MyNamespace 
{ 
    public class B 
    { 
     public void main() 
     { 
      var myInstance = new MyClass(); 
     } 
    } 
} 
を試してみてください

プロジェクトAはうまく構築されますが、プロジェクトBをビルドしようとすると、エラーが表示されます私はDependency1BaseDependency2Classは参照されていないアセンブリで定義されています。だから私はプロジェクトBへの参照を追加する必要がないように、この定義をプロジェクトAにリンクする方法があるかどうか疑問に思っていますか?または、MyClassを使用する他のプロジェクトで、プロジェクトAの依存関係を常に参照する必要がありますか?

+0

なぜ、プロジェクト 'B'に参照を追加したくないのですか? –

+1

'MyClass'が' Dependency1Base 'から継承しているという事実は' MyClass'のパブリックインターフェースの一部です。 'MyClass'を使いたい場合は' Dependency1Base'と 'Dependency2Class'が定義される。 – Blorgbeard

+0

@Blorgbeardしたがって、参照されるアセンブリで定義されたクラスを使用するには、その祖先クラスを定義するすべてのアセンブリを参照する必要がありますか? –

答えて

0

はい、プロジェクトで使用するすべてのクラスまたはオブジェクトを参照する必要があります。しかし、それ以上のことは言及する必要はありません。

あなたは、それ自体がAから継承Bから継承するクラスC、持っている場合:C

を、あなたはBを参照する必要があり、そしてあなたがAから来たいくつかのプロパティやメソッドを使用している場合、あなたはAを参照する必要があります同様

Bで、あなたはA `でA

を参照する必要があり、あなたは何を参照する必要はありません。

関連する問題