无法访问page_load ASP.NET中的公共类枚举

时间:2014-01-26 17:07:13

标签: asp.net .net web enums

我很困惑,我有以下课程定义

public class User
{
    public enum UserRoleTypes : int
    {
        Guest = 0,
        User = 1,
        Administrator = 2,
        Developer = 3,
    }
}

但是,尝试在类似这样的Page_Load方法中访问此公共枚举时。

public partial class Options_AccessControl : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        User currentUser = OCMSession.getCurrentUser(this);
        if (currentUser.getRoleID() < (int)User.UserRoleTypes.Administrator)
        {
            LogWriter logger = new LogWriter();
        }
    }
}

我收到以下错误。

Error   5   'System.Security.Principal.IPrincipal' does not contain a definition for 'UserRoleTypes' and no extension method 'UserRoleTypes' accepting a first argument of type 'System.Security.Principal.IPrincipal' could be found (are you missing a using directive or an assembly reference?) H:\SVN\OCM\Options\AccessControl.aspx.cs    15  49  OCM

但是相同的代码在没有User类定义的情况下工作。与Entity.UserRoleTypes类似,或者如果我将枚举定义移到类之外。非常感谢任何帮助理解此错误。

1 个答案:

答案 0 :(得分:0)

您正在使用User,但在此上下文中,这是Page的一个属性。它的类型为IPrincipal,不包含您的枚举。如果您想使用新创建的课程,则必须更具体,或为您的班级选择不同的名称。