背景

本人头一回写博客,请大家多多关照。通过读取XML文件获取用户管理权限,其中涉及三部分:

1.XML文件的生成;

2.XML文件的读取;

3.XML文件的保存;

如何做

第一步:自己先将XML文件格式列出来。

XML格式如下:

<?xml version="1.0"?>

<UMConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<AppConfig>
<ApplicationName>NEXADIA Web CN</ApplicationName>
<ApplicationVersion>1.0</ApplicationVersion>
<LanguageID>zh-CN</LanguageID>
<Flag>true</Flag>
</AppConfig>
<MapConfigs>
<UMMapConfig>
<Map MoudleID="EF8CC484-48DB-4114-A98F-756C9AD850BF" TopicID="4FEB221B-D127-4E17-A4E5-718A452459B5"/>
<MapInfo TopicName="测试topic" TopicDisplayName="测试topic" PriorityIndex="1" MoudleName="测试Moudle" MoudleDisplayName="测试Moudle" ApplicationName="NEXADIA Web CN" />
</UMMapConfig>
<UMMapConfig>
<Map MoudleID="C21DD429-0C64-404B-BBB3-8A0227ECB2AA" TopicID="9385FF20-161B-4ABE-8D0A-E653DF2ABD0B"/>
<MapInfo TopicName="测试topic1" TopicDisplayName="测试topic1" PriorityIndex="2" MoudleName="测试Moudle1" MoudleDisplayName="测试Moudle1" ApplicationName="NEXADIA Web CN" />
</UMMapConfig>
<UMMapConfig>
<Map MoudleID="C21DD429-0C64-404B-BBB3-8A0227ECB2AA" TopicID="E4276FB8-5713-4F76-86AA-D836B067E192"/>
<MapInfo TopicName="测试topic1" TopicDisplayName="测试topic1" PriorityIndex="3" MoudleName="测试Moudle2" MoudleDisplayName="测试Moudle2" ApplicationName="NEXADIA Web CN" />
</UMMapConfig>
</MapConfigs>
</UMConfig>

第二步:自动创建XML文件对应的实体类

通过程序员在线转换工具

http://www.ofmonkey.com/tools/entity

效果如下:

public class UMConfig
{
public string xmlns:xsi { get; set; }

public string xmlns:xsd { get; set; }

public AppConfig AppConfig { get; set; }

public MapConfigs MapConfigs { get; set; }
}
public class AppConfig
{
public string ApplicationName { get; set; }

public string ApplicationVersion { get; set; }

public int LanguageID { get; set; }

public string Flag { get; set; }
}
public class MapConfigs
{
public UMMapConfig UMMapConfig { get; set; }
}
public class UMMapConfig
{
public Map Map { get; set; }

public MapInfo MapInfo { get; set; }
}
public class Map
{
public int MoudleID { get; set; }

public int TopicID { get; set; }
}
public class MapInfo
{
public string TopicName { get; set; }

public string TopicDisplayName { get; set; }

public string PriorityIndex { get; set; }

public string MoudleName { get; set; }

public string MoudleDisplayName { get; set; }

public string ApplicationName { get; set; }
}

第三步:XML文件路径获取

public static String GetConfigFile()
{
string path = System.AppDomain.CurrentDomain.BaseDirectory.ToString() + "UMConfig.xml";
return path;
}

第四步:XML文件保存

public static void XMLSave(UMConfig umConfig)
{
String sConfigFile = GetConfigFile();
umConfig.Save(sConfigFile);
}

第五步:XML文件读取

public static UMConfig Load()
{
String sConfigFile = GetConfigFile();
Type type = typeof(UMConfig);
FileStream fs = null;
try
{
fs = new FileStream(sConfigFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
XmlSerializer serializer = new XmlSerializer(type);
UMConfig cfg = (UMConfig)serializer.Deserialize(fs);
if (cfg == null || cfg.MapConfigs == null)
return null;
return cfg;
}
catch (Exception ex)
{
return null;
}
finally
{
if (fs != null)
fs.Close();
}
}

总结:

可以快速自定义自己想要的XML格式,快速读取和更改xml内容,以及XML文件覆盖也很容易。

XML格式与实体类的转换的更多相关文章

  1. XML文件与实体类的互相转换

    XML文件与实体类的互相转换 一.将XML文件反序列化为实体类对象 1. 通常程序的配置信息都保存在程序或者网站的专门的配置文件中(App.config/web.config).但是现在为了演示XML ...

  2. DataTable与实体类互相转换

    /// <summary> /// DataTable与实体类互相转换 /// </summary> /// <typeparam name="T"& ...

  3. DataTable与实体类的转换

    多年前写的DataTable与实体类的转换,已放github 阅读目录 介绍 起因 代码 UnitTest GitHub 介绍 很多年前一直使用Ado.net,后来慢慢转型到其他的orm,在转型过程中 ...

  4. 【转】DataTable与实体类互相转换

    原文地址:https://www.cnblogs.com/marblemm/p/7084797.html /// <summary> /// DataTable与实体类互相转换 /// & ...

  5. 接口中的xml报文和实体类的之间转换

    需求:湖南保险行业意健险承保风险预警平台数据接口 平台提供HTTPServlet服务,接受保险公司的数据请求,并在处理后返回给保险公司相应的处理结果.数据接口格式为XML数据报文,在每次接口的交易中, ...

  6. java实现xml格式与javabean之间的转换XmlUtil类

    XmlUtil类:不多说,直接撸代码: /** * java 转换成xml * @Title: toXml * @Description: TODO * @param obj 对象实例 * @retu ...

  7. 多年前写的DataTable与实体类的转换,已放github

    本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 阅读目录 介绍 起因 代码 UnitTest G ...

  8. 多年前写的DataTable与实体类的转换

    介绍 介绍 很多年前一直使用Ado.net,后来慢慢转型到其他的orm,在转型过程中,有意向将两者的模型结合起来,利用DataTable中的行状态完善一些mvc中的数据控制作用.现在把它放出来,留个纪 ...

  9. net core天马行空系列-可用于依赖注入的,数据库表和c#实体类互相转换的接口实现

    1.前言 hi,大家好,我是三合.作为一名程序猿,日常开发中,我们在接到需求以后,一般都会先构思一个模型,然后根据模型写实体类,写完实体类后在数据库里建表,接着进行增删改查, 也有第二种情况,就是有些 ...

随机推荐

  1. 小程序组件交互 -- 传入js

    1.父组件(wxml页面)向子组件传递 在子组件中定义需要传入的属性 properties: { count: { type: Number, value: 0, observer:function( ...

  2. POJ1046 Color Me Less

    题目来源:http://poj.org/problem?id=1046 题目大意: 在RGB颜色空间中,用下面的公式来度量两个颜色值的距离. 现给出16个RGB表示的颜色,和一些用于测试的颜色,求被测 ...

  3. 瓷砖覆盖(状压DP)

    题目描述 Description 用1*2的瓷砖去铺N*M的地面,问有多少种铺法 输入描述 Input Description 第一行有两数n,m.表示地面的大小 输出描述 Output Descri ...

  4. The bytes/str dichotomy in Python 3 [transport]

    reference and transporting from: http://eli.thegreenplace.net/2012/01/30/the-bytesstr-dichotomy-in-p ...

  5. Storm概念学习系列之storm简介

    不多说,直接上干货! storm简介 Storm 是 Twitter 开源的.分布式的.容错的实时计算系统,遵循 Eclipse Public License1.0. Storm 通过简单的 API ...

  6. URLConnection简单使用

    1 --get提交 //资源url地址 URL url = new URL("http://localhost:8080/test/TestServlet?id=10"); //获 ...

  7. Day1下午

    T1 暴力50分 排A和B X,不用考虑X    用数组80分, 权值线段树.平衡树100, 一个函数? T2 打表  dp logn+1,+ 搜索,dp? txt..... T3 30分暴力和尽量均 ...

  8. Aspx比较简单的登录

    客户端 <form id="form1" runat="server"> <div> 用户名:<input type=" ...

  9. jQuery读取和设定KindEditor值的方法

    转载自:https://www.jb51.net/article/43595.htm 侵删 jQuery读取和设定KindEditor值的方法 更新时间:2013年11月22日 09:03:56   ...

  10. struts2的执行流程

    在浏览器端输入相应的访问地址>>>>把请求发送给tomact>>>>tomact判断应该交给那个webApplication>>>&g ...