使用前先在工程内引用“DBasisLibrary.dll”,右键点击<引用><添加引用><游览>选择“DBasisLibrary.dll”<添
加><确定>。
个人开发常用的一些基础功能整合,方便平时学习使用。欢迎交流 zihaozhineng@live.com
Xml
用于将实例序列化成 Xml 并保存到本地和从本地读取 Xml 并反序列化给实例。
命名空间:DJ.Xml
层级:using DJ.Xml
XmlSerializationFile
方法
类型 名称 说明
静态方法
object GetFromXml( Type type, string path )
从本地文件(path)中读取 xml 以目标类型(type)反序列化,将结果返
回,如果返回的是 null 这表示没有读取到文件或者格式不正确
静态方法
bool SaveToXml( object obj, string path )
将实例(obj)序列化 Xml,并报到处到本地(path)文件,如果返回 true
表示序列化完成并成功保存,返回 false 这保存错误
示例
首先要创建一个数据结构体
/// <summary>
/// 班级
/// </summary>
public class Class
{
public int ID { get; set; }
public string Name { get; set; }
public List< Student > StudentList { get; set; }
public Class() {
StudentList = new List<Student>();
}
}
/// <summary>
/// 学生
/// </summary>
public class Student
{
public int ID { get; set; }
public string Name { get; set; }
}
保存
private void Button_Click_W (object sender, RoutedEventArgs e)
{
/////创建数据结构体
//创建一个班级
Class c = new Class();
c.ID = 01001;
c.Name = "一年级1班";
//创建一个学生1
Student s1 = new Student();
s1.ID = 10001;
s1.Name = "张三";
//把学生张三添加到一年级1班
c.StudentList.Add(s1);
//创建一个学生2
Student s2 = new Student();
s2.ID = 10002;
s2.Name = "李四";
//把学生李四添加到一年级1班
c.StudentList.Add(s2);
////////////////////
//把班级实例c序列化并保存到d:\1.xml
bool b = XmlSerializationFile.SaveToXml((object)c, @"d:\1.xml");
if (b) {
Console.WriteLine("保存成功");
}
else {
Console.WriteLine("保存失败");
}
}
保存结果
<?xml version="1.0" encoding="utf-8"?>
<Class xmlns:CJ="http://www.multispace.cn/">
<ID>1001</ID>
<Name>一年级1班</Name>
<StudentList>
<Student>
<ID>10001</ID>
<Name>张三</Name>
</Student>
<Student>
<ID>10002</ID>
<Name>李四</Name>
</Student>
</StudentList>
</Class>
读取
private void Button_Click_R(object sender, RoutedEventArgs e)
{
//定义一个班级的引用变量用于接收序列化后的实例
Class c;
c = (Class)XmlSerializationFile.GetFromXml(typeof(Class), @"d:\1.xml");
if (c!=null) {
Console.WriteLine("读取成功");
Console.WriteLine("班级ID:" + c.ID);
Console.WriteLine("班级名:" + c.Name);
Console.WriteLine("班级学员人数:"+ c.StudentList.Count);
}
else {
Console.WriteLine("读取失败");
}
}
输出结果
读取成功
班级ID:1001
班级名:一年级1班
班级学员人数:2
Json
用于将实例序列化成 Json 并保存到本地和从本地读取 Json 并反序列化给实例。
命名空间:DJ.Newtonsoft
层级:using DJ.Newtonsoft
json
方法
类型 名称 说明
静态方法 string SerializeObject(object o) 将对象序列化为 JSON 格式的字符串
静态方法 Static T DeserializeJsonToObject<T>(string json) 解析 JSON 字符串生成对象实体
静态方法 bool SaveToJson(object o, string file) 对象序列化并保存到文件
静态方法 T GetFileDeserializeJsonToObject<T>(string path ) 从文件获取 Json 并反序列化位对象
示例
using DJ.Newtonsoft
首先要创建一个数据结构体
/// <summary>
/// 班级
/// </summary>
public class Class
{
public int ID { get; set; }
public string Name { get; set; }
public List< Student > StudentList { get; set; }
}
/// <summary>
/// 学生
/// </summary>
public class Student
{
public int ID { get; set; }
public string Name { get; set; }
}
调用
private void Button_Click_1(object sender, RoutedEventArgs e)
{
/////创建数据结构体
//创建一个班级
Class c = new Class();
c.ID = 01001;
c.Name = "一年级1班";
//创建一个学生1
Student s1 = new Student();
s1.ID = 10001;
s1.Name = "张三";
//把学生张三添加到一年级1班
c.StudentList.Add(s1);