在Windows 8应用程序开发中坚持使用类结构

时间:2012-11-23 09:28:46

标签: class windows-8 structure datacontractserializer

必需:我希望像这样序列化XML文件

<StudentGroupList>
   <Group key = 1>
      <StudentItem>
           <Name> John </Name>
           <GroupName>1</GroupName>
      <StudentItem>
      <StudentItem>
           <Name> David</Name>
           <GroupName>1</GroupName>
      <StudentItem>
   </Group>
   <Group key = 2>
      <StudentItem>
           <Name> Ron</Name>
           <GroupName>2</GroupName>
      <StudentItem>
   </Group>
 </StudentGroupList>

这是我为序列化和反序列化而创建的类结构

    public class StudentItem
    {
       public string Name {get; set;}
       public  int GroupName {get; set;}
    }

   public  class StudentGroupList
    {
       public List<StudentItem> lstStudnetItem = new List<StudentItem>();
       public int key {get;set;}
    }
    class StudentDataSource
    {
          public  List<StudentGroupList> lstStudnetGroup = new List<StudentGroupList>();   
          //Confusion in below line
           static StudentDataSource objDataSource = new  StudentDataSource();
    }

我创建了一个StudentDataSource的单个实例,以便我可以在我的应用的每个页面上全局使用它。我想使用单个实例,因为此实例将从上面的XML文件反序列化,并在进行任何更改后立即更新它。现在,如您所见,我已将此实例设为静态,我无法访问lstStudnetGroup

请为我提供课程结构的解决方案,以便我可以轻松创建应用程序。

1 个答案:

答案 0 :(得分:0)

我认为lstStudnetGroup的直接问题是默认情况下它具有私人访问权限。在声明中添加“public”,您应该能够看到它。也就是说,您无法在objDataSource课程之外访问StudentDataSource

StudentDataSource是否需要包含自身的静态实例?这样就不够了:

  

类StudentDataSource    {      public static List lstStudnetGroup = new List();    }

然后在代码中你可以参考

  

StudentDataSource.lstStudnetGroup.XXXX