<?xml version="1.0" encoding="utf-8"?>
<ArrayOfMenuItems xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MenuItems>
<name>xxx</name>
<menuItemList>
<MenuItem>
<name>xxx1</name>
<moduleNameSpace>ControlsLibrary</moduleNameSpace>
<modulePath>ControlsLibrary.ControlsImp.ExamTest</modulePath>
<configPath>\config\Exam.xml</configPath>
</MenuItem>
<MenuItem>
<name>xxxxa</name>
<moduleNameSpace>ControlsLibrary</moduleNameSpace>
<modulePath>ControlsLibrary.ControlsImp.ExamTest</modulePath>
<configPath>\config\Exam.xml</configPath>
</MenuItem>
<MenuItem>
<name>xxxxa1</name>
<moduleNameSpace>ControlsLibrary</moduleNameSpace>
<modulePath>ControlsLibrary.ControlsImp.ExamTest</modulePath>
<configPath>\config\Exam.xml</configPath>
</MenuItem>
</menuItemList>
</MenuItems>
</ArrayOfMenuItems>
/// <summary>
/// 所有的节点集合
/// </summary>
public static List<MenuItems> menusList { get; set; }
  /// <summary>
/// 目录树节点类
/// </summary>
public class MenuItems
{
/// <summary>
/// 节点名
/// </summary>
public string name { get; set; }
/// <summary>
/// 包含的选择项内容
/// </summary>
public List<MenuItem> menuItemList { get; set; }
}
 /// <summary>
/// 目录树内容类
/// </summary>
public class MenuItem
{
/// <summary>
/// 菜单名
/// </summary>
public string name { get; set; }
/// <summary>
/// 所调用的类库命名空间
/// </summary>
public string moduleNameSpace { get; set; }
/// <summary>
/// 所调用的类库路径
/// </summary>
public string modulePath { get; set; }
/// <summary>
/// 类库所调用的配置文件路径
/// </summary>
public string configPath { get; set; }
}
/// <summary>
/// 从磁盘读取配置文件信息
/// </summary>
/// <param name="type"></param>
/// <param name="txtFilePath">配置文件路径</param>
/// <returns></returns>
public static object ReadConfig<T>(T obj, string filePath)
{ StreamReader fileStream =new StreamReader( filePath);
string configtxt = fileStream.ReadToEnd();
fileStream.Close();
using (StringReader reader = new StringReader(configtxt))
{
return new XmlSerializer(typeof(T)).Deserialize(reader);
}
}

最后调用

            PsyAdjust.Common.Module.Menu.menusList = PsyAdjust.Common.Module.ObjectConvert.ReadConfig(PsyAdjust.Common.Module.Menu.menusList, "Menue.xml") as List<PsyAdjust.Common.Module.Menu.MenuItems>;
 

读取XML直接转换为类对象的更多相关文章

  1. 利用JSON将Map转换为类对象

    Map类型做为一种常见的Java类型,经常在开发过程中使用,笔者最近遇到要将Map对象做为一种通用的参数变量,下传到多个业务类方法中,然后在各个业务类方法中将Map转换为指定类对象的情况.如何将Map ...

  2. 深入浅出Java Dom4j读取XML

    在以前自己使用的xml较少,只是了解其很强大,现在可算是在DRP中,真正的开始使用它了,以前只是简单的理解xml,xml即可扩展标记语言,简单的使用,具体是什么?怎么用?还是一直让自己期待的. 首先来 ...

  3. 菜鸟学Java(八)——dom4j详解之读取XML文件

    dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源 ...

  4. dom4j读取XML文件内容

    <?xml version="1.0" encoding="UTF-8"?> <RESULT> <VALUE> <NO ...

  5. ASP.NET MVC 学习笔记-2.Razor语法 ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础 反射的具体应用 策略模式的具体应用 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用 C#读取XML文件的基类实现

    ASP.NET MVC 学习笔记-2.Razor语法   1.         表达式 表达式必须跟在“@”符号之后, 2.         代码块 代码块必须位于“@{}”中,并且每行代码必须以“: ...

  6. 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值

    前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能 ...

  7. 利用反射与dom4j读取javabean生成对应XML和读取XML得到对应的javabean对象集合

    转自:http://blog.csdn.net/zhao19861029/article/details/8473245 首先实现生成对应的JAVAbean的XML文件方法 /** * DMO4J写入 ...

  8. (转) 读取xml文件转成List<T>对象的两种方法

    读取xml文件,是项目中经常要用到的,所以就总结一下,最近项目中用到的读取xml文件并且转成List<T>对象的方法,加上自己知道的另一种实现方法. 就以一个简单的xml做例子. xml格 ...

  9. 读取xml文件转成List<T>对象的两种方法(附源码)

    读取xml文件转成List<T>对象的两种方法(附源码) 读取xml文件,是项目中经常要用到的,所以就总结一下,最近项目中用到的读取xml文件并且转成List<T>对象的方法, ...

随机推荐

  1. SQL中TOP,LIMIT,ROWNUM的用法

    SQL SERVER/MS Access的Select Top的用法: Select TOP number|percent table_columname FROM tablename MySQL/O ...

  2. postgresql 设置只读用户

    postgresql 设置只读用户 ` CREATE USER readonly WITH ENCRYPTED PASSWORD 'ropass'; alter user readonly set d ...

  3. Python 修改电脑DNS

    Pc电脑一般连网都是动态DHCP获取局域的IP地址,而且DNS服务器为自动获取地址.要修改DNS就要打开本地网络-本地连接- 属性- TCP/IP 手动修改DNS. 其实Python也可以通过WMI接 ...

  4. DTMF三种模式(SIPINFO,RFC2833,INBAND)

    转自:http://www.tuicool.com/articles/n6Vb2iJ 1.DTMF(双音多频)定义:由高频音和低频音的两个正弦波合成表示数字按键(0~9 * # A B C D). 2 ...

  5. IMap 对map的功能的强化

    为了解决表单提交获得数据的方便性,我们将map的功能进行加强,表单提交的数据会自动将页面数据放入PageData对象中,当从页面获取数据时 new的时候要传request.request.getPar ...

  6. jquery中的ajax方法参数总是记不住,这里记录一下。

    1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如 ...

  7. html 超文本标记语言

    1.html超文本标记语言 2.在html中存在着大量的标签,我们用html中存在的标签将要显示在网页的内容包含起来. 3.css 控制网页显示内容的效果. 4.html+css 只能是静态网页. 5 ...

  8. TProfiler

    下载:访问 TProfiler 的 GitHub 主页,https://github.com/alibaba/TProfiler,点击 Clone or download 按钮的打开下载选项,点击该选 ...

  9. Java EE之servlet实现用户登录

    1.在连接数据库的JAVA类中添加查询功能: 在这之前有一个连接数据库的方法: Connection conn=null; PreparedStatement stat=null;           ...

  10. [NOIP2016]愤怒的小鸟 D2 T3 状压DP

    [NOIP2016]愤怒的小鸟 D2 T3 Description Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可 ...