是否可以在只读类中创建一个方法

本文关键字:方法 一个 创建 只读 是否 | 更新日期: 2023-09-27 18:01:13

我有一个公共类,它也是只读类。(即,它在选项卡的右上角有挂锁。类中的一些成员对项目的其他部分来说是非常宝贵的。我遇到的问题是,该类只由属性字段组成,没有方法。

这是类的样子:

 public class UserInfo : ADItemInfo
    {
    public UserInfo();
    public string FirstName{ get; set; }
    public string LastName { get; set; }
    public string EmployeeID { get; set; }
    }

UserInfo和ADItemInfo类都是只读的。

默认情况下。Master.cs页面我有一个方法,它将使用成员:FirstName, LastName, EmployeeID来处理用户身份验证。下面列出的代码。

private void ProcessUserAuthentication()
        {
            var userInfo = (UserInfo)Session["UserInfo"];
        if (userInfo == null &&
                Page.User != null &&
                Page.User.Identity != null &&
                !string.IsNullOrWhiteSpace(Page.User.Identity.Name))
        {
            userInfo = UserInfo.GetUserInfo(Page.User.Identity.Name); //ERROR HERE READS: abc.UserInfoclass.does not contain a defintion for 'GetUserInfo'
            Session["UserInfo"] = userInfo;
        }
        if (RequireUserAuthentication)
        {
           // nothing in here right now.
        }
        if (!string.IsNullOrWhiteSpace(userInfo.FirstName) && !string.IsNullOrWhiteSpace(userInfo.LastName))
        {
            uxUserWelcomeLbl.Text = string.Format("Welcome {0} {1} {2}", userInfo.FirstName, userInfo.LastName, userInfo.EmployeeID);
        }
    }

到目前为止,我还不能为这个类生成方法存根,也不确定该采用哪种方法来解决这个问题。

是否可以在只读类中创建一个方法

我无法完全理解你想要实现的目标。现在您正在调用GetUserInfo,因为它是UserInfo类的一个静态方法,但没有这样的方法,正如我们在UserInfo的定义中看到的那样。

是否要将Page.User.Identity.Name的结果放入userInfo变量中?如果是这样的话,你可以做一些类似的事情:

userInfo.FirstName = Page.User.Identity.Name;

它在标签的右上角有挂锁

如果我是正确的,这表明文件是只读的,而不是类本身。也许您正试图在调试模式下更改某些内容?