xml序列化实现最近打开
来源:互联网 发布:ubuntu kylin 优麒麟 编辑:程序博客网 时间:2024/04/28 09:46
string fileName = Application.StartupPath + "//RecentFiles.config";
if (System.IO.File.Exists(fileName))
{
RecentFiles recnt = (RecentFiles)RecentFiles.Load(typeof(RecentFiles), fileName);
int k = this.tsmiRecent.DropDownItems.Count;
for (int i = recnt.Files.Count - 1; i >= 0; i--)
{
if (recnt.Files[i] == "")
{
continue;
}
ToolStripMenuItem menuitem = new ToolStripMenuItem(recnt.Files[i]);
this.tsmiRecent.DropDownItems.Insert(k, menuitem);
k++;
menuitem.Click += new EventHandler(menuitem_Click);
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace PCXEditor
{
public class RecentFiles
{
private List<string> _files=new List<string>();
public List<string> Files
{
get { return _files; }
set { _files = value; }
}
/// <summary>
/// 指定オブジェクトの属性値をxmlファイルに書き込む
/// </summary>
/// <param name="obj">指定オブジェクト</param>
/// <param name="fileName">xmlファイル名称(フルパス)</param>
/// <returns>
/// 正常に保存された場合 TRUE
/// エラー発生の場合 FALSE
/// </returns>
public static bool Save(object obj, string fileName)
{
try
{
MyXmlSerializer mxs = new MyXmlSerializer();
mxs.SerializeObject(obj, fileName);
return true;
}
catch (Exception)
{
return false;
}
}
/// <summary>
/// 指定型のオブジェクトの属性値をxmlファイルから読込む
/// </summary>
/// <param name="type">オブジェクトの型(Type)</param>
/// <param name="fileName">xmlファイル名称(フルパス)</param>
/// <returns></returns>
public static object Load(Type type, string fileName)
{
try
{
MyXmlSerializer mxs = new MyXmlSerializer();
return mxs.DeserializeObject(type, fileName);
}
catch (Exception)
{
return null;
}
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;
using System.IO;
namespace PCXEditor
{
public class MyXmlSerializer : System.Xml.Serialization.XmlSerializer
{
/// <summary>
/// オブジェクトをシリアル化し、XMLファイルに保存する
/// </summary>
/// <param name="obj">シリアル化する対象</param>
/// <param name="fileName">保存先のファイル名</param>
public void SerializeObject(object @obj, string @fileName)
{
XmlSerializer serializer = null;
FileStream fs = null;
try
{
//XmlSerializerオブジェクトを作成
//書き込むオブジェクトの型を指定する
serializer = new XmlSerializer(@obj.GetType());
//ファイルを作成
fs = new FileStream(@fileName, FileMode.Create);
//シリアル化し、XMLファイルに保存する
serializer.Serialize(fs, @obj);
}
catch (Exception)
{
}
finally
{
//閉じる
fs.Close();
}
}
/// <summary>
/// ArrayList型を含むクラスのオブジェクトをシリアル化し、XMLファイルに保存する
/// </summary>
/// <param name="obj">シリアル化する対象</param>
/// <param name="fileName">保存先のファイル名</param>
/// <param name="types">ArrayListに挿入できるオブジェクト型のType配列</param>
public void SerializeObject(object @obj, string @fileName,Type[] @types)
{
XmlSerializer serializer = null;
FileStream fs = null;
try
{
//XmlSerializerオブジェクトを作成
//書き込むオブジェクトの型を指定する
serializer = new XmlSerializer(@obj.GetType(), @types);
//ファイルを作成
fs = new FileStream(@fileName, FileMode.Create);
//シリアル化し、XMLファイルに保存する
serializer.Serialize(fs, @obj);
}
catch (Exception)
{
}
finally
{
//閉じる
fs.Close();
}
}
/// <summary>
/// XMLファイルから読み込み、逆シリアル化する
/// </summary>
/// <param name="fileName">保存先のファイル名</param>
/// <param name="type">逆シリアル化されるオブジェクトのType</param>
/// <returns></returns>
public object DeserializeObject(Type @type, string @fileName)
{
XmlSerializer serializer = null;
FileStream fs = null;
object obj = null;
try
{
//XmlSerializerオブジェクトの作成
serializer = new XmlSerializer(@type);
//ファイルを開く
fs = new FileStream(@fileName, FileMode.Open);
//XMLファイルから読み込み、逆シリアル化する
obj = serializer.Deserialize(fs);
//return
return obj;
}
catch (Exception)
{
return null;
}
finally
{
//閉じる
fs.Close();
}
}
}
}
- xml序列化实现最近打开
- xml实现最近项目打开
- 利用XML序列化实现程序配置文件
- android基础 -实现xml的序列化
- 利用反射方法实现打开“最近任务”
- Android---40---实现XMl文件的序列化与解析
- 最近,对象序列化遇到的问题
- XML 序列化
- xml序列化集合
- 序列化 XML 数据
- XML序列化
- xml序列化
- XML序列化基础
- XML序列化示例
- xml序列化 ICollection
- xml序列化
- XML 序列化简介
- XML 序列化示例
- Cacti监控华为交换机不显示端口解决办法
- Java 搜索引擎的实现—— 网络爬虫
- 九九乘法表
- TUP:分享产品背后的技术和用户体验 -- 转发 --
- textbox输入数字
- xml序列化实现最近打开
- gwt gxt 中文乱码问题。。。
- 控件添加事件
- 2010-9-9
- kernel and patch
- C++的异常机制
- 提示
- js遍历xml文件学习
- 复制粘贴