好的,所以我对以下数据的情况有些困惑。
我们的应用程序中有以下结构:
- Portal.Web - 一个 MVC 3 Web 应用程序,它基本上包含所有视图、脚本、css 和 HTML 辅助扩展方法
- Portal.Core - 一个基本上是我们的业务对象的类库,我们的所有模型都包含在这个项目中。
- Portal.Data - 另一个包含我们的 NHibernate 配置和 DTO 类的类库。
这是我们的用法:在控制器中,我们调用位于 Portal.Core 中的模型,该模型通过调用 Portal.Data 进行填充,因此基本上 Web 永远看不到数据。
这里有一个问题:在控制器中,例如我尝试实例化一个名为 Client 的新 DTO 对象,如下所示:
var client = new Client();
它不起作用,预计它不知道 Client 是什么,甚至指定 using 也不会削减它。没关系。
但是,如果我尝试在视图中执行完全相同的行,Resharper 将使用添加到视图中,然后没有抱怨,项目运行,我们可以在视图中使用 DTO 类。
那么问题来了,这是为什么呢?我试图阻止我们的小辈在 Views 中使用 DTO 类,所以我特意删除了对 Web 中 Data 项目的引用,但他们仍然可以使用这些类。有人可以阐明一下吗?