C# .NET4.0 自定义文件并实现文件与应用程序关联
(2012-06-07 13:08:29) 一、如何创建自定义后缀名的文件(如 *.tmp)?
使用序列化将一个对象序列化成文件,使用 BinaryFormatter类提供方法可以将文件序列
化为二进制文件存放。
注意:待序列化的类必须标示可序列化,方法是在 public classTest{}上方加标签
[System.Serializable]
通过上一步我们已经知道创建一个自定义扩展名文件的思路了,下面是具体的代码,包括两部分
一个是如可保存文件,一个是如可加载文件(这个类文件附在程序里就能看效果了!!)
------------------------------------------------------------------------
using System.IO;
using System.Xml.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;
namespace SerializerTeset.CommonClass
{
[System.Serializable]
public classTestForBinary : ISerializerObject
{
private string m_name = string.Empty;
private string m_userid = string.Empty;
public string UserName
{
set { m_name = value; }
get { return m_name; }
}
public string UserId
{
set { m_userid = value; }
get { return m_userid; }
}
/// <summary>
/// 保存序列化对象
/// </summary>
/// <paramname="fileName">文件完整路径包括名称(c:/test.xxj)</param>
///<returns></returns>
public bool Save(string fileName)
{
BinaryFormatter bf = new BinaryFormatter();
using (FileStream fs=newFileStream(fileName,FileMode.Create))
{
bf.Serialize(fs, this);
fs.Close();
}
return true;
}
/// <summary>
/// 反序列化以保存的对象
/// </summary>
/// <paramname="fileName">文件完整路径包括名称(c:/test.tmp)</param>
///<returns></returns>
public bool Load(string fileName)
{
BinaryFormatter xs = new BinaryFormatter();
TestForBinary tc;
using (FileStream fs = new FileStream(fileName,FileMode.Open))
{
tc = xs.Deserialize(fs) as TestForBinary;
}
if (tc == null)
return false;
this.m_name = tc.UserName;
this.UserId = tc.UserId;
return true;
}
}
}
------------------------------------------------------------------------
怎么样,是不是很有意思啊?不过问题又来了:“如何双击这个自定义后缀的文件就能打开咱们
的应用程序呢?”
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。