#c# #asp.net #webmethod
#c# #asp.net #webmethod
Вопрос:
Пожалуйста, прочитайте мой вопрос, это не связано с тем, как получить доступ к webmethod или как использовать session. ‘
Я столкнулся с одной проблемой и не понял ее.
У меня есть один класс sessioninfo, который содержит в нем всю информацию, связанную с сеансом. Когда я использую его в Page_load(), он работает нормально. но когда я попытаюсь получить к нему доступ в webmethod, он выдает мне ошибку, подобную этой: «sessionInfo.Ошибка идентификатора пользователя CS0103: имя ‘sessionInfo’ не существует в текущем контексте»
вот мой класс code sessionInfo
namespace Abc.Common
{
public class SessionInfo
{
public static decimal UserID
{
get
{
try
{
if (HttpContext.Current.Session["UserID"] != null)
return Convert.ToDecimal(HttpContext.Current.Session["UserID"]);
return 0;
}
catch (Exception)
{
return 0;
}
}
set
{
HttpContext.Current.Session["UserID"] = value;
}
}
...
...
}
}
// внутренний код asp.net (.aspx.cs)
using Abc.common;
....
Код в Page_Load
protected void Page_Load(object sender, EventArgs e)
{
if (SessionInfo.UserID == 0) //here its working fine
{
Response.Redirect(Page.ResolveUrl("~/Default.aspx?errormsg=Your Session Is Expired."));
}
if (!IsPostBack)
{
...
}
}
Код веб-метода
[System.Web.Services.WebMethod]
public static DataTable ValidateUploadedFiles()
{
//if (Abc.Common.SessionInfo.UserID == 0) //its working fine
if (SessionInfo.UserID == 0)
{
...
}
}
когда я напрямую использовал переменную sessioninfo, она выдавала ошибку (уже пространство имен включено в инструкцию using)
SessionInfo.UserID //this want work.
когда я буду использовать его с пространством имен с классом, он работает нормально.
Abc.Common.SessionInfo.UserID //this is working fine.
Ответ №1:
Из вашего описания я предполагаю, что вам не хватает инструкции «using» в верхней части вашего файла. Просто добавьте «using Abc.Common;» в первой строке вашего файла, и он должен работать нормально. Ох. И это не имеет никакого отношения к тому, что это веб-метод. Именно так работают пространства имен.
Комментарии:
1. Я упомянул, что я использовал оператор using. но это странная проблема.