次のようなクラス レイアウトを使用すると、非常に奇妙な動作が発生することに気付きました。
// Contents of assembly A:
public class MyParentClass
{
public class NestedClass
{
}
}
// Contents of assembly B:
public class AnotherClass : List<MyParentClass.NestedClass>
{
}
アセンブリ A をアセンブリ B の依存関係として追加できます。この例ではエラー メッセージが表示されずにコンパイルされますが、たとえば、ユニット テストの参照としてアセンブリ B を読み込むと、このエラーが表示されます。単体テストをコンパイルします。
ファイルまたはアセンブリ 'AssemblyB、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。
このコードが生成するアセンブリは実際に機能し、Redgate Reflector を使用して生成された DLL を実行し、コードを期待どおりに表示できますが、単体テストで読み込みが拒否されます。
この問題が、別のアセンブリにあるネストされたクラスを呼び出しているという事実に関係していることはほぼ確実であり、とにかくこの設計をリファクタリングすることになるでしょうが、なぜこれが機能しないのかを本当に知りたいです期待される。この方法でクラスを使用する際に問題が発生した場合、コンパイラが例外をスローすることが予想されます。
お時間をいただきありがとうございます。