我很困惑,我有以下课程定义
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类似,或者如果我将枚举定义移到类之外。非常感谢任何帮助理解此错误。
答案 0 :(得分:0)
您正在使用User,但在此上下文中,这是Page的一个属性。它的类型为IPrincipal,不包含您的枚举。如果您想使用新创建的课程,则必须更具体,或为您的班级选择不同的名称。