Я действительно застреваю, пытаясь ссылаться на методы/классы в проекте, импортированном в пустой проект. Точные шаги, чтобы воссоздать это следующим образомКак определить пространство имен для импортированного проекта
- Загрузка и извлечение в временную папку http://mywsat.codeplex.com/
- Создать новый проект в VS - Asp.Net Пустой веб-приложений .NET 3.5 с именем WebApplication1
- Скопировать все файлы из MYWSAT35 папки по новому проекту
- В обозревателе решений VS, выберите Показать все файлы
Если теперь построить и запустить проект работает нормально, без ошибок.
5 В обозревателе решений VS, для всех импортируемых файлов правой кнопкой мыши и выберите Включить в Project
Теперь попробуйте перестроить проект я получаю ошибку
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?)
Так что я знаю, что я должен ссылаться на GetAdminMasterPage с Using xxxxxx;
, но просто не могу понять правильный синтаксис.
Во-первых, почему ошибка возникает только при выборе «Включить в проект», а не только при копировании?
Во-вторых, как исправить ошибку с правильным путем до GetAdminMasterPage?
Был ли исходный код веб-сайтом «проект»? Является ли ваш пустой проект проектом веб-приложений? –
Да, я так думаю.Означает ли это, что это невозможно? – user3357963
Это означает, что вы смешиваете яблоки с апельсинами и должны ожидать неприятностей. Я рекомендую загрузить загруженный сайт локально, щелкнуть правой кнопкой мыши и конвертировать в веб-приложение, а затем попытаться использовать этот код. –