如何为导入的项目定义命名空间

本文关键字:项目 定义 命名空间 导入 | 更新日期: 2023-09-27 18:28:11

我在试图引用导入到空白项目中的项目中的方法/类时遇到了困难。重建的具体步骤如下

  1. 下载并提取到临时文件夹中http://mywsat.codeplex.com/
  2. 在VS-Asp.Net Empty Web Application.Net 3.5中创建一个名为WebApplication1的新项目
  3. 将MYWSAT35文件夹中的所有文件复制到新项目中
  4. 在VS解决方案资源管理器中,选择"显示所有文件"

如果您现在构建并运行该项目,则运行良好,没有任何错误。

5在VS解决方案资源管理器中,对于所有导入的文件,右键单击并选择包含在项目中

现在尝试重建项目我得到错误

    The type or namespace name 'GetAdminMasterPage' could not be found 
(are you missing a using directive or an assembly reference?)

GetAdminMasterPage.cs位于WebApplication1'App_Code'class'GetAdminMasterPage.cs中,看起来像这个

#region using references
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web.Caching;
using System.Web.UI;
#endregion
/// <summary>
/// Gets the MasterPage for the user selected Admin Theme.
/// </summary>
public class GetAdminMasterPage : System.Web.UI.Page
{
    #region Get Admin MasterPage
    protected override void OnPreInit(EventArgs e)
    {
        if (Cache["cachedAdminMaster"] == null)
        {
            GetDefaultMasterPage();
        }
        else
        {
            string loadMasterFromCache = Cache["cachedAdminMaster"].ToString();
            Page.MasterPageFile = loadMasterFromCache;
        }
    }
    private void GetDefaultMasterPage()
    {
        try
        {
            SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["dbMyCMSConnectionString"].ConnectionString);
            SqlCommand cmd = new SqlCommand("sp_admin_SelectMasterPage", con);
            cmd.CommandType = CommandType.StoredProcedure;
            con.Open();
            SqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.SingleResult);
            if (myReader.Read())
            {
                string masterPageFileName = myReader["ThemeUrl"] as string;
                Cache.Insert("cachedAdminMaster", masterPageFileName, null, DateTime.Now.AddSeconds(300), System.Web.Caching.Cache.NoSlidingExpiration);
                Page.MasterPageFile = masterPageFileName;
            }
            myReader.Close();
            con.Close();
            con.Dispose();
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
        }
    }
    #endregion
}

现在给出错误的方法之一的例子是

using System;
public partial class admin_admin_edit_css : GetAdminMasterPage
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
}
//gives error The type or namespace name 'GetAdminMasterPage' could not be found 
(are you missing a using directive or an assembly reference?)

所以我知道我必须用Using xxxxxx;引用GetAdminMasterPage,但就是找不出正确的语法。

首先,为什么只有当我选择"包含在项目中"而不是刚复制时才会出现错误?

其次,如何使用GetAdminMasterPage的正确路径修复错误?

如何为导入的项目定义命名空间

将项目作为网站打开后,右键单击项目并选择"转换为web应用程序"。转换的结果是您希望移动到空白项目中的内容,或者您可能希望保留更改。

您必须将项目作为网站打开。

如果您使用的是VS2010,它会提示您升级到.net 4.0。你可以选择否。

但如果您在VS2012中打开,它将在没有提示的情况下打开它。

两者都将成功构建。

注意:您不会创建新项目

1.复制驱动器中的MYWSAT35文件夹(例如:d:''MYWSAT35)
2.在Visual Studio中,转到"文件"->"打开网站"
3.选择d:''MYWSAT35并单击打开
4.按F5键运行应用程序