访问具有自定义类型(类)的其他用户的自定义配置文件属性

时间:2014-01-28 20:50:18

标签: c# asp.net profile

我正在使用ASP.net和C#,尝试从Profile文件访问其他用户的web.config属性。

我要访问的属性具有我创建的类的自定义类型ClassesList

public class ClassesList
{
    public struct Class_
    {
        public string name;
        public string teacherName;
        public string startDate, endDate;
        public int numOfEnrolledStudents;
        public int maxNumOfStudents;
        public string[] studentsNames;
        public string accessKey;
        public bool IsActive;
     }

     public Class_[] Classes;

     public ClassesList()
     {
        this.Classes = new Class_[200];

        for (int i = 0; i < 200; i++)
        {
            Classes[i].IsActive = false;
            Classes[i].studentsNames = new string[500];
        }
     }
}

以下是web.config文件中的个人资料:

<profile>
  <properties>
    <add name="ClassList" type="ClassesList" allowAnonymous="false" />
  </properties>
</profile>

我正在使用此语句获取另一个用户的配置文件(在for循环中)

ProfileBase currentTeacherProfile = ProfileBase.Create(teacherList[i], true);

现在我有了个人资料,我只需要访问我想要的个人资料属性,那就是accessKey

我正在尝试使用此代码来获取属性,但我得到了未找到的异常

currentTeacherProfile.GetPropertyValue("ClassList.Classes[0].accessKey")

注意:使用

访问当前用户的个人资料属性
Profile.ClassList.Classes[0].accessKey

有效,但在不同用户的情况下不起作用。

感谢。

2 个答案:

答案 0 :(得分:1)

ProfileCommon otherProfile = Profile.getProfile("name");

答案 1 :(得分:0)

您需要先获取属性值(ClassesList)

ClassesList classList = currentTeacherProfile.GetPropertyValue("ClassList") as ClassesList;

然后,您可以访问该对象的属性

classList.Classes[0].accessKey