Asp.net Can';t访问类的atribute

Asp.net Can';t访问类的atribute,asp.net,class,attributes,Asp.net,Class,Attributes,我编写了一段代码来获取与HttpContext匹配的用户属性,但是当我试图访问用户属性时,该属性在外部类中是不可见的。示例这是我的Auth类和用户attr public class Auth { IBaseRepository<User> _users; public Auth(IBaseRepository<User> user) { this._users = user; } private const

我编写了一段代码来获取与HttpContext匹配的用户属性,但是当我试图访问用户属性时,该属性在外部类中是不可见的。示例这是我的Auth类和用户attr

 public class Auth
{

    IBaseRepository<User> _users;

    public Auth(IBaseRepository<User> user)
    {
        this._users = user;
    }

    private const string UserKey = "simpleBlog.Atuh.UserKey";
    public virtual User User
    {
        get
        {
            if (!HttpContext.Current.User.Identity.IsAuthenticated)
                return null;

            var user = HttpContext.Current.Items[UserKey] as User;

            if (user == null)
            {

                user = _users.GetAll().FirstOrDefault(u => u.Name == HttpContext.Current.User.Identity.Name);

                if (user == null)
                    return null;

                HttpContext.Current.Items[UserKey] = user;

            }

            return user;
        }
    }

}
公共类身份验证
{
IBaseRepository用户;
公共身份验证(IBaseRepository用户)
{
这是.\u users=user;
}
private const string UserKey=“simpleBlog.Atuh.UserKey”;
公共虚拟用户
{
得到
{
如果(!HttpContext.Current.User.Identity.IsAuthenticated)
返回null;
var user=HttpContext.Current.Items[UserKey]作为用户;
if(user==null)
{
user=\u users.GetAll().FirstOrDefault(u=>u.Name==HttpContext.Current.user.Identity.Name);
if(user==null)
返回null;
HttpContext.Current.Items[UserKey]=用户;
}
返回用户;
}
}
}
要从外部类获取用户,显示的选项是“Equals”、“ReferenceEquals”


必须提到我正在使用依赖项注入

您忘记了使用new关键字实例化类。如果您没有实例化该类,那么只提供了用static关键字标记的类方法

var baseRepository = new BaseRepository<user>();
var auth = new Auth(baseRepository);

// Now you can access auth.User
console.log(auth.User.Name);
var baseRepository=new baseRepository();
var auth=新的auth(baseRepository);
//现在您可以访问auth.User
console.log(auth.User.Name);

解决方案是让用户保持静态,但我不能,因为注入依赖项。