你可以试试将MailMessage对象序列化为字节,然后保存到数据库中。
解决方案 »
- XML固定读取的问题
- 如何去掉websphere的ssl,不用https访问websphere??急!!急
- 用动态生成的TreevViee导航动态改变GridView中显示的数据,为什么一点TreeView的节点GridView就不见了?
- Udp 900k大图片实时传输
- C# 中定义长度可变的二维数组????
- 使用C#如何获取本机另一个用户的HKEY_CURRENT_USER注册表?
- 配置如何写
- 怎么在C#里面创建多个SQL SEVER存储过程?
- 请问如何获得datagrid中超链接列中各项的值?
- 调试模式下F11 不能关闭程序,理解不能 求助!
- 初学,请问graphics如何实例化?为什么不能graphics g=new graphics(),实例化为有几中方式?
- 如何在VS.Net2005里,把项目生成CAB文件?
private byte[] SerializeToByte(ArrayList list)
{
//假如Arraylist为空,则返回null
if (list.Count == 0)
{
return null;
}
byte[] array = null;
try
{
//定义一个流
Stream stream = new MemoryStream();
//定义一个格式化器
BinaryFormatter bf = new BinaryFormatter();
//将Arraylist中的对象逐一进行序列化
foreach (object obj in list)
{
bf.Serialize(stream, obj);
}
array = new byte[stream.Length];
//将二进制流写入数组
stream.Position = 0;
stream.Read(array, 0, (int)stream.Length);
//关闭流
stream.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return null;
}
return array;
} //将一个二进制数组反序列化
private ArrayList DeseralizeToArraylist(byte[] b)
{
if (b == null || b.Length == 0)
{
return null;
}
//定义一个流
MemoryStream stream = new MemoryStream(b);
//定义一个格式化器
BinaryFormatter bf = new BinaryFormatter();
ArrayList list = new ArrayList();
while (stream.Position != stream.Length)
{
list.Add(bf.Deserialize(stream));
}
stream.Close();
return list;
}
以上两个函数:
一个是将一个对象的列表(一系列对象存储在ArrayList中)中的对象依次序列化成二进制流...另外一个是将一个二进制数组反序列化成一个对象列表(存储在ArrayList中,返回)..
Person[] personList ={ new Person("liujia", 1000), new Person("liming", 1500) };
School[] schoolList ={ new School("001", "bjtu"), new School("002", "xitu") };
//序列化过程开始
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None);
//将几个对象序列化到一个文件中
for (int i = 0; i < personList.Length; i++)
{
formatter.Serialize(stream, personList[i]);
}
for (int j = 0; j < schoolList.Length; j++)
{
formatter.Serialize(stream, schoolList[j]);
}
stream.Close();//序列化完成
//反序列化过程开始
IFormatter formatter11 = new BinaryFormatter();
Stream stream11 = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.None);
long lenth11 = stream11.Length;
ArrayList list11 = new ArrayList();
while (stream11.Position != lenth11)
{
list11.Add (formatter11 .Deserialize (stream11 ));
}
stream11 .Close ();//反序列化过程结束 //显示反序列化结果
foreach (object o in list11)
{
//判断对象类型,分别进行处理
if (o != null && o.GetType().Name =="School")
{
Console.WriteLine("SchoolId:{0}\tSchoolName:{1}", ((School)o).SchoolId, ((School)o).SchoolName);
}
else if (o != null && o.GetType().Name == "Person")
{
Console.WriteLine("Name:{0}\tSalary:{1}", ((Person)o).Name, ((Person)o).Salary);
}
}