求C# 对XML序列化与反序列化实例 求C# 对XML序列化与反序列化实例最好能加点注释,谢谢了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://msdn.microsoft.com/zh-cn/library/system.xml.serialization.xmlserializer(v=VS.80).aspx namespace ObjectsLibrary { public interface ObjectSerializer { string Serialize<T>(T obj); string Serialize(Type t, object obj); T Deserialize<T>(string content); object Deserialize(Type t, string content); } public class JsonObjectSerializer : ObjectSerializer { public string Serialize<T>(T obj) { return Serialize(typeof(T), obj); } public string Serialize(Type t, object obj) { string result = string.Empty; DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType()); using (MemoryStream ms = new MemoryStream()) { serializer.WriteObject(ms, obj); result = Encoding.UTF8.GetString(ms.ToArray()); } return result; } public T Deserialize<T>(string content) { return (T)Deserialize(typeof(T), content); } public object Deserialize(Type t, string content) { object result = null; using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(content))) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(t); result = serializer.ReadObject(ms); } return result; } } public class XmlObjectSerializer : ObjectSerializer { public string Serialize<T>(T obj) { return Serialize(typeof(T), obj); } public string Serialize(Type t, object obj) { StringBuilder result = new StringBuilder(); try { XmlSerializer xs = new XmlSerializer(t); xs.Serialize(new StringWriter(result), obj); } catch (Exception ex) { Console.WriteLine(ex.Message); } return result.ToString(); } public T Deserialize<T>(string content) { return (T)Deserialize(typeof(T), content); } public object Deserialize(Type t, string content) { object result = null; XmlSerializer xs = new XmlSerializer(t); result = xs.Deserialize(new StringReader(content)); return result; } }} 临时 写的,LZ,你看看行吗?定义一个 路径: String path = "Person.txt";序列化时: //----序列化方法 public void SaveInfo() { //定义文件流 FileStream fs = new FileStream(Path,FileMode.Create); //二进制方式 BinaryFormatter bf = new BinaryFormatter(); //序列化存储对象 bf.Serialize(fs,lst); fs.Close(); } 反序列化时: //判断文件路径是否存在 if (!File.Exists(Path)) { return; } FileStream fs = new FileStream(Path, FileMode.Open); BinaryFormatter bf = new BinaryFormatter(); this.lst = bf.Deserialize(fs) as List<Person>; fs.Close(); 你这是网上找的吧...我之前都搜索过的哦,请问 lst 是什么来的? combox 控件数据绑定操作的疑问 C# 结构体输出值的问题? 有个字符串,他不听话,我要把它分成几部分 一个项目引用另一个项目,做的安装程序不能使用 谁碰到过winfrom程序点点击生成的.EXE文件程序运行登录界面输入用户名和密码后登录还出现一个登录界面窗口 关于Socket的IP问题!!!!!!!!!!!!!!!!!!!! 屏蔽键盘的问题 大家快看看 谁会弄这个简单C#问题 关于c#程序界面美化问题 我已实现在DataGrid中使用ENTER代替TAB,但是我想让其不可排序,不好用,为什么呢? 如果使C#编的网站不需要水晶报表? 请教一下正则表达式*
namespace ObjectsLibrary {
public interface ObjectSerializer {
string Serialize<T>(T obj);
string Serialize(Type t, object obj);
T Deserialize<T>(string content);
object Deserialize(Type t, string content);
} public class JsonObjectSerializer : ObjectSerializer {
public string Serialize<T>(T obj) {
return Serialize(typeof(T), obj);
} public string Serialize(Type t, object obj) {
string result = string.Empty;
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
using (MemoryStream ms = new MemoryStream()) {
serializer.WriteObject(ms, obj);
result = Encoding.UTF8.GetString(ms.ToArray());
}
return result;
} public T Deserialize<T>(string content) {
return (T)Deserialize(typeof(T), content);
} public object Deserialize(Type t, string content) {
object result = null;
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(content))) {
DataContractJsonSerializer serializer = new DataContractJsonSerializer(t);
result = serializer.ReadObject(ms);
}
return result;
}
} public class XmlObjectSerializer : ObjectSerializer {
public string Serialize<T>(T obj) {
return Serialize(typeof(T), obj);
} public string Serialize(Type t, object obj) {
StringBuilder result = new StringBuilder();
try {
XmlSerializer xs = new XmlSerializer(t);
xs.Serialize(new StringWriter(result), obj);
} catch (Exception ex) {
Console.WriteLine(ex.Message);
}
return result.ToString();
} public T Deserialize<T>(string content) {
return (T)Deserialize(typeof(T), content);
} public object Deserialize(Type t, string content) {
object result = null;
XmlSerializer xs = new XmlSerializer(t);
result = xs.Deserialize(new StringReader(content));
return result;
}
}
}
public void SaveInfo()
{
//定义文件流
FileStream fs = new FileStream(Path,FileMode.Create);
//二进制方式
BinaryFormatter bf = new BinaryFormatter();
//序列化存储对象
bf.Serialize(fs,lst);
fs.Close();
} 反序列化时: //判断文件路径是否存在
if (!File.Exists(Path))
{
return;
}
FileStream fs = new FileStream(Path, FileMode.Open);
BinaryFormatter bf = new BinaryFormatter();
this.lst = bf.Deserialize(fs) as List<Person>;
fs.Close();
你这是网上找的吧...我之前都搜索过的哦,请问 lst 是什么来的?