статический класс в asp.net - PullRequest
       3

статический класс в asp.net

0 голосов
/ 15 октября 2011

В моем приложении мне нужно прочитать некоторую информацию о пользователе, который вошел в систему из базы данных, поэтому я создаю класс кэша для сохранения информации, это код:

public class UserManager
{
    private static object lockThis = new object();
    private static dao dao = new dao();


    private static Dictionary<string, User> user_map = new Dictionary<string, User>();
    public static void loadUserInfo(string user_name)
    {
        lock (lockThis)
        {
            unLoadUserInfo(user_name);
            string sql = "select * from sys_user where u_name='" + user_name + "'";
            DataTable dt = dao.executeSql(sql);
            if (dt.Rows.Count == 1)
            {
                DataRow dr = dt.Rows[0];
                User uw = new User();
                uw.user_id = dr["userid"].ToString();
                uw.user_name = dr["u_name"].ToString();
                user_map.Add(user_name, uw);
            }
        }

    }
    public static User getUserInfo(string user_name)
    {
        if (!user_map.ContainsKey(user_name))
            loadUserInfo(user_name);
        return user_map[user_name];
    }

    public static void unLoadUserInfo(string user_name)
    {
        if (user_map.ContainsKey(user_name))
            user_map.Remove(user_name);
    }
}

При входе пользователя я вызываю это:

UserManager.loadUserInfo(Context.Identify.User.name);

Однако здесь выдается два исключения:

1) UserManager initialized failed....
2) the null pointer exception.(the user_map ==null).

Интересно, почему? user_map является статическим файлом, его сначала нужно инициализировать.

В чем проблема?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...