本文实例讲述了C#使用XML序列化操作菜单的方法。分享给大家供大家参考。具体分析如下:
之前的一篇文章《C#递归读取XML菜单数据的方法》没使用XML序列化来操作菜单,而且发现那还有一个问题,就是在XML菜单的某个菜单节点前加上一些注释代码的就不能读取,现在使用XML序列化后可以很方便的读取,故在此写一写。
XML菜单的节点代码如下:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<ZCSoft.Net xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">
<Applications>
<Application ID =\"OA\" Text=\"OA管理系统\">
<Modules>
<Module ID=\"OA_System\" Text=\"系统管理\">
<Menus>
<Menu ID=\"OA_System_UserManager\" Text=\"人员管理\" URL=\"System/UserManager/UserManagerList.aspx\"> </Menu>
<Menu ID=\"OA_System_RoleManager\" Text=\"角色管理\" URL=\"System/RoleManager/RoleManagerList.aspx\"></Menu>
<Menu ID=\"OA_System_LoginLog\" Text=\"登录日志\" URL=\"System/Log/LoginLogList.aspx\"></Menu>
<Menu ID=\"OA_System_OperateLog\" Text=\"操作日志\" URL=\"System/Log/OperateLogList.aspx\"></Menu>
</Menus>
</Module>
<Module ID=\"OA_TargetManage\" Text=\"目标管理\">
<Menus>
<Menu ID=\"OA_TargetManage_TargetSetup\" Text=\"目标设定\" URL=\"OA/TargetManage/TargetSetupList.aspx\">
</Menu>
</Menus>
</Module>
</Modules>
</Application>
<Applications>
</ZCSoft.Net>
这里面有一个节点:Applications(应用程序节点),里面可以放多个Application,而每个Application节点里面只包含一个Modules(模块节点),Modules有多个Module,每个Module又只有一个Menus(菜单节点),而Menus里有多个Menu。而每个节点都有两个公共的属性:ID和Text。
故这里写一个公共的属性类:BaseAttribute,前面记得加上序列化标识Serializable,代码如下:
[Serializable]
public class BaseAttribute
{
[XmlAttribute(AttributeName = \"ID\")]
public string ID { get; set; }
[XmlAttribute(AttributeName = \"Text\")]
public string Text { get; set; }
}
本文地址:https://www.stayed.cn/item/17069
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我