说完了CommunityInfo 和SectionInfo类,有一个不能不说:那就是CommunityStarterKit中的区域信息.区域信息承载着整个系统的运行.我们从SectionInfo类里可以看出,这个类里存放的区域信息包括了区域的每一个信息,如区域编号,区域名称等.
由于一个Community里可能有多个sections,在Community里进一步将区域信息以集合的形式存放,并建立索引,其中索引以区域路径作为参数,这样传递不同的路径信息就可以获取请求的区域信息.区域信息信息由SectionCollection.cs文件里的SectionCollection类实现.当用户访问时,会从数据库里读取区域信息,具体由SectionUtility.cs文件里的GetAllEnabledSectionsFromDB方法实现.
在Community里,区域路径是动态添加的,并不是存放在数据库里.我们假设请求路径为:
http://localhost/CommunityStarterKit/Mission/default.aspx,它大致可分成四个部分:
http://localhost (应用程序域AppDomain)/CommunityStarterKit(虚拟路径名)/Mission(区域路径SectionPath)/default.aspx(default.aspx)
在CommunityGlobals.cs里为这些路径处理定义了一些方法(参考CommunityGlobals.cs文件里的ResoleAbsoluteUrl等函数,SectionUtility.cs里的CalculateSectionPath函数)