public sealed class UserLoginSingleton
{
UserLoginCollection _userLoginCol = new UserLoginCollection();
UserLoginSingleton()
{
}
public static UserLoginSingleton Instance
{
get
{
IDictionary items = HttpContext.Current.Items;
if (!items.Contains("TheInstance"))
{
items["TheInstance"] = new UserLoginSingleton();
}
return items["TheInstance"] as UserLoginSingleton;
}
}
public void CreateUserObj(string xmlData)
{
_userLoginCol = (UserLoginCollection)_xmlUtil.Deserialize(xmlData, typeof(UserLoginCollection));
}
public UserLoginCollection getUserObj()
{
return _userLoginCol;
}
}
Использование:экземпляры статического класса, уникальные для запроса или сервера в ASP.NET?
страница 1.aspx
UserLoginSingleton.Instance.CreateUserObj(xml);
Pase2.aspx:
UserLoginCollection userLoginCollection = UserLoginSingleton.Instance.getUserObj();
Вслед за статью здесь: link text
Я установил свой объект коллекции на странице 1, а затем сделать response.redirect или нажмите на ссылку, чтобы получить меня на странице 2.aspx. Однако у моего экземпляра singleton нет объекта коллекции, который я установил. Как я сохраняю свой объект коллекции через разные страницы за каждый сеанс?
Я знаю, что статическая работа не работает, так как каждый экземпляр увидит объект, и я хочу, чтобы это было конкретным для каждого пользователя.
В Например, он не использует статические поля. – 2008-12-12 19:37:19
Справа. Если он хочет, чтобы данные делились (что, по-видимому, ему кажется), он должен использовать статическое поле. – 2008-12-12 22:02:09