.net 4.5 命名空间中不存在类型或命名空间名称(是否缺少程序集引用?)
我知道这个问题已经被问过了,但我找不到任何有助于解决我问题的方法 我想将我的.net 4.5 命名空间中不存在类型或命名空间名称(是否缺少程序集引用?),.net-4.5,c#,.net 4.5,C#,我知道这个问题已经被问过了,但我找不到任何有助于解决我问题的方法 我想将我的aspx页面(retet.aspx)连接到Microsoft SQL数据库。我在retet.aspx.cs上收到此错误: 错误1命名空间“ProiectSera”中不存在类型或命名空间名称“GlobalClass”(是否缺少程序集引用?) 错误指向这行代码: 其中,ProiectSera是项目名称,GlobalClass是我在db上进行操作的文件 我的使用声明如下: using System; using System.
aspx
页面(retet.aspx
)连接到Microsoft SQL数据库。我在retet.aspx.cs
上收到此错误:
错误1命名空间“ProiectSera”中不存在类型或命名空间名称“GlobalClass”(是否缺少程序集引用?)
错误指向这行代码:
其中,ProiectSera
是项目名称,GlobalClass
是我在db上进行操作的文件
我的使用声明如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ProiectSera;
目标框架设置为
我应该如何解决此错误
更新
我的GlobalClass.cs是:
using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.IO;
using ProiectSera;
using System.Data.Services;
namespace ProiectSera.App_Code
{
public static class GlobalClass
{
static public void Update(string _param1, string _param2)
{//function to update}
}
}
App_Code是存放GlobalClass.cs的文件夹。我试着
ProiectSera.App_Code.GlobalClass.Update(ValRefTempSol.Text, ValRefTempAer.Text); //
但我也犯了同样的错误。我把GlobalClass.cs放在项目的根目录中。我还从名称空间ProiectSera.App\u代码中删除了.App\u代码
更新1
我的retet.aspx.cs是
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ProiectSera;
using ProiectSera.App_Code;
namespace ProiectSera
{
public partial class Retete : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSave_Click(object sender, EventArgs e)
{
string intValRefTempSol;
string intValRefTempAer;
// intValRefTempSol = ValRefTempSol.Text;
// intValRefTempAer = ValRefTempAer.Text;
// ProiectSera.App_Code.GlobalClass.Update(ValRefTempSol.Text, ValRefTempAer.Text);
GlobalClass.Update(ValRefTempSol.Text, ValRefTempAer.Text);
}
}
}
确保以下各项
- 如果ProiectSera在单独的库中,那么您可以从web应用程序中获得对它的项目引用。如果GlobalClass位于web应用程序项目本身中,则不需要这样做,但如果GlobalClass是在同一解决方案或其他地方的单独库中定义的,则需要在web应用程序中访问该外部库
- 确保ProiectSera不应该是ProjectSera(如果是打字错误)
- 确保您的ProiectSera using语句位于顶部(
using ProiectSera;
)。假设这是正确的名称空间。检查GlobalClass类的名称空间,并在希望使用其功能的类中相应地使用该名称空间
- 然后,只要在代码中调用它,假设Update是GlobalClass的静态方法
GlobalClass.Update(ValRefTempSol.Text,ValRefTempAer.Text)代码>
编辑:鉴于您现在已经发布了GlobalClass代码,您可以看到该类的名称空间是ProiectSera.App_code
;。因此,您需要在另一个类using ProiectSera.App_code中使用该语句代码>。然后通过GlobalClass.Update调用它,如上所述
如果您不了解名称空间在C#中是如何工作的,那么我建议您检查一下()。您的GlobalClass
位于名称空间ProiectSera.App_code
中
所以类名是ProiectSera.App\u code.GlobalClass
确保ProiectSera
命名空间中也没有ProiectSera
类,否则如果在顶部声明using ProiectSera
,它将尝试使用它(一般来说,不要将任何类命名为与命名空间相同的类)
如果仍然不起作用,您可能希望尝试使用全局
命名空间:
global::ProiectSera.GlobalClass.Update(ValRefTempSol.Text, ValRefTempAer.Text);
看看这是否有效:如果没有,并且GlobalClass
在同一个项目中,那么还有一些东西你没有展示给我们
更新
如果您确信两个文件都在同一个项目/程序集上,那么想到的另一件事是,GlobalClass.cs
实际上没有被编译。确保生成操作
设置为编译
(您可以在解决方案资源管理器中右键单击GlobalClass.cs
,然后选择属性
)。如果您使用的是VS.NET:
右键单击项目上的References文件夹
选择添加引用
选择.NET选项卡(如果不是.NET Framework程序集,请选择浏览按钮)
双击错误消息中包含命名空间的程序集
按OK按钮
“使用”语句中的内容并不重要,重要的是“项目引用”中的内容。是GlobalClass
文件还是class
?确保它是公共的
@BryceWagner什么应该包含“项目参考”?@tchelidze是一个文件GlobalClass.cs。是公共的。GlobalClass和rette.aspx在同一个项目中吗?@knightsb是的,它在同一个项目中。让我看看我是否理解得很好。当这两个文件位于不同的项目中时会出现此错误?可以这样做,但如果您只是在同一项目中没有正确引用GlobalClass,也可能发生此错误。这要求您拥有基于GlobalClass名称空间的正确using语句。然后正确地引用该类和方法(正如我在上面所写的那样)。我尝试了删除项目名称并仅使用:GlobalClass.Update(ValRefTempSol.Text,ValRefTempAer.Text);但问题是一样的。我用信息更新我的问题。我更新了我的答案。您没有为GlobalClass包含正确的命名空间。名称空间是ProiectSera.App_代码。将其添加为using语句,然后只调用GlobalClass.Update()。此外,请确保GlobalClass与web应用程序位于同一个项目中。如果它在同一解决方案中的单独类库中,或在其他地方,则您需要在web应用程序项目中引用该类库。@magn更新后,如果您100%肯定GlobalClass.cs
和Retete.cs
在同一项目中(即使在不同的文件夹中),如果global::ProiectSera.App\u code.GlobalClass.Update(…)
不起作用,唯一想到的是你的GlobalClass.cs
没有被编译。确保GlobalClass.cs
上的Build操作
设置为Compile
(右键单击解决方案资源管理器中的fle并选择Properties
以查看属性窗口)@magn,因此它没有被编译?是的。
global::ProiectSera.GlobalClass.Update(ValRefTempSol.Text, ValRefTempAer.Text);