【发布时间】:2012-06-06 03:30:04
【问题描述】:
我发现了两个关于如何序列化数据的不同示例。一个使用流,另一个不使用?
stream1.Position = 0;
StreamReader sr = new StreamReader(stream1);
Console.Write("JSON form of Person object: ");
Console.WriteLine(sr.ReadToEnd());
public static string ToJson(this object obj, int recursionDepth = 100)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.RecursionLimit = recursionDepth;
return serializer.Serialize(obj);
}
public static List<T> ToListObject<T>(this string obj, int recursionDepth = 100)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.RecursionLimit = recursionDepth;
List<T> returnList = serializer.Deserialize<List<T>>(obj);
return returnList;
}
为什么要使用 Stream 作为附加步骤?
【问题讨论】:
-
你使用你需要的东西来完成工作。
-
@Boo 的回答不完整;你使用你需要的东西来完成工作,并且你可以证明。
-
我想指出 StackOverflow 示例正在做两件不同的事情。其中一个使用
Serialize()将对象转换为流,另一个使用Deserialize()将字符串(或流,但它只是直接使用字符串)转换为对象。 Stream 是一种更内存安全的方式来生成对象的直接表示,文件流和内存流对此很常见。
标签: c#