摘 要 介绍了用XML作为数据载体开发用户登录、授权的动态菜单系统所有功能,
包括各窗体界面及其主要的核心代码。
关键词 LINQ to XML;XML树;XML文件;TreeView控件;动态菜单
1 前言
软件开发人员在开发某一个C/S模式项目时,都会遇到用户登录和菜单授权问题。通常首先想到的是用数据库来存储用户和菜单等有关数据,我单位在开发的诸多项目中也都是采用数据库。自从微软推出LINQ to XML,使得操作XML更简单,更方便,更智能的XML API 。由此,我们尝试采用 XML作为数据载体来开发用户登录授权的动态菜单系统。
我们开发的用户登录授权的动态菜单系统(以下简称本系统),已在Microsoft Visual C# 2008 环境下调试通过。并利用ClickOnce 部署将本系统应用程序发布到服务器上,经过测试运行正常。客户机上在安装本系统的同时,也必须安装.NET Framework 3.5 SP1。
2 XML树的创建
本系统的XML树创建的思路是按数据库表应用习惯考虑的,XML树子元素相当于数据库的主键字段,其他字段都是该元素的属性。这样,XML树中的一个子元素就相当于数据库表的一条记录。
实际运用LINQ to XML创建XML树并生成XML文档要比创建数据库表简单得多,只要首先用极简单代码生成父元素,而其他子元素在本系统运行时通过添加、修改、删除自动生成并存入文档。例如,菜单数据的父元素生成并写入XMLCdsj.xml文件的代码:
XElement xmlFile = new XElement("cdsj" );
xmlFile.Save(@"C:\XMLCdsj.xml");
其他xml文件也用同样类似代码生成。
XMLCdsj.xml文件打开显示的带有两个子元素XML树:
<cdsj>
<cdbm cdmc="菜单创建与调整" zxml="FormsYhdlsqcdxt.FormCdcj" sxbm="04">40</cdbm>
|