我正在开发具有大量可重用程序集的 C# .NET 解决方案。其中三个是:
- 一个 WinForms 程序集
- 一个 webclient 类库
- 包含数据模型类的程序集
我在类库中有一个通用方法,如下所示:
namespace Company.WebClient {
public class GetData<T>()
{
...
}
}
但是,当我从 WinForms 程序集中调用该方法时,我传入了一个类库不知道的类型,因为它包含在数据模型程序集中:
namespace Company.WinFormsApp {
public class App
{
public void Main()
{
Company.WebClient.GetData<TypeFromTheDataModel>();
}
}
}
令人惊讶的是,它似乎有效。但为什么它会起作用?webclient 程序集没有对数据模型程序集的硬编码引用,所以我很惊讶它没有报告“找不到类型”或一些此类错误。这是一种安全的工作方式,还是我应该向我的项目添加更多引用(即从类库到数据模型)?