【问题标题】:Why is a class recognized in one part of my project, but not in another?为什么一个类在我的项目的一部分中被识别,但在另一部分中却没有?
【发布时间】:2013-08-17 03:30:32
【问题描述】:

我正在尝试创建一个私有方法的修改公共版本,该方法出现在我正在处理的项目的 Controller 类中。私有方法返回一个自定义类型的列表,而在公共方法中我想返回一个 int 列表。

因此,我将现有方法从 \Controllers 文件夹中的控制器类复制到了我在 App_Code 文件夹下添加的新 Utils 类中。

但事实证明,要编译代码,我需要添加某些“使用”子句;没问题?

例如,在这行代码中:

get { return int.Parse(CCRCustomer.GetCustomerNumberFromUsername(User.Identity.Name)); }

...“身份”为红色 - 无法识别。我认为“用户”应该是我们的自定义类;但是当我将鼠标悬停在它上面时,

它说,“模块 System.Data.Entity ...”

然而,将 System.Data.Entity 添加到 using 子句会导致该部分的“实体”部分被涂成红色,因为无法识别。

下一个问题是这一行:

using (var conn = new EntityConnection(ConnectionString))

...在这种情况下,现在轮到“EntityConnection”感到尴尬并变红/无法识别。

具有原始类似代码的控制器类是这样的:

using System.Data.EntityClient;

...所以我想也许这就是我需要的;但是将它添加到我的 Utils 课程只会奖励我更多的红色 - 再次出现在“实体”上。

为什么从项目的一个部分可以看到引用的类,而从另一个部分看不到?

【问题讨论】:

    标签: c# asp.net-mvc visual-studio-2010 using


    【解决方案1】:

    在 web 应用项目中,不需要将代码文件添加到 app_code 文件夹中;在项目中创建一个常规的“Utils”文件夹并添加到它。 app_code 中的代码文件编译为不同的程序集,这就是为什么您放置在 app_code 下的代码缺少对现有项目(例如 Entity Framework )的引用。

    编辑:为了更清楚地说明这一点,默认情况下 ASP.NET Mvc does not give you a way to add app_code folder。这是因为 app_code 主要存在于动态编译代码文件的网站。 Web 应用程序是预编译的,Mvc 仅作为 Visual Studio 中的 Web 应用程序项目提供。虽然如链接的 SO 问题中所述,但如果您确实需要,您可以解决此问题。

    【讨论】:

      猜你喜欢
      • 2012-08-18
      • 1970-01-01
      • 2019-07-25
      • 2014-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-07
      相关资源
      最近更新 更多