私は、再利用可能なアセンブリがたくさんあるC#.NETソリューションに取り組んでいます。これらのうちの3つは次のとおりです。
- WinFormsアセンブリ
- webclientクラスライブラリ
- データモデルクラスを含むアセンブリ
クラスライブラリには、次のようなジェネリックメソッドがあります。
namespace Company.WebClient {
public class GetData<T>()
{
...
}
}
ただし、WinFormsアセンブリ内からメソッドを呼び出すと、データモデルアセンブリに含まれているため、クラスライブラリが認識できない型を渡します。
namespace Company.WinFormsApp {
public class App
{
public void Main()
{
Company.WebClient.GetData<TypeFromTheDataModel>();
}
}
}
驚いたことに、それはうまくいくようです。しかし、なぜそれが機能するのですか?webclientアセンブリには、データモデルアセンブリへのハードコードされた参照がないため、「typenotfound」またはそのようなエラーが報告されないことに驚いています。これは安全な作業方法ですか、それともプロジェクトへの参照を追加する必要がありますか(つまり、クラスライブラリからデータモデルへ)?