コードを共有する 2 つのプロジェクトがあります。元のソース ファイルは project/namespace 'ns1' にあります。プロジェクト/名前空間「ns2」への参照があります。これは循環依存関係を作成するため、他の方向にも参照を追加することはできません。これを回避するために、Visual Studio で「リンクとして追加」によって「インターフェイス I」を「ns2」に追加しました。
これは基本的に共有コードの定義です。
namespace ns1
{
public interface I { }
public class A : I { }
}
namespace ns2
{
using ns1;
public class B : I { }
}
私がこれを行う場合:
namespace ns1
{
public class C
{
public method m()
{
List<I> list = new List<I>();
list.Add(new A());
}
}
}
ビルドは成功します。しかし、私がこれを行うと:
namespace ns1
{
using ns2;
public class C
{
public method m()
{
List<I> list = new List<I>();
list.Add(new B());
}
}
}
ビルドが失敗する - 「タイプ 'ns2.B' を 'ns1.I' に暗黙的に変換できません」。
誰かが解決策を説明/提供してもらえますか?