我正在使用 DataContractJsonSerializer
,它喜欢将输出写入流中。我想在序列化器的输出前后添加一些内容,所以我使用了一个 StreamWriter
来交替写入我需要的额外内容。
var ser = new DataContractJsonSerializer(typeof (TValue));
using (var stream = new MemoryStream())
{
using (var sw = new StreamWriter(stream))
{
sw.Write("{");
foreach (var kvp in keysAndValues)
{
sw.Write("'{0}':", kvp.Key);
ser.WriteObject(stream, kvp.Value);
}
sw.Write("}");
}
using (var streamReader = new StreamReader(stream))
{
return streamReader.ReadToEnd();
}
}
当我这样做时,我会得到一个“参数异常”,提示为“流不可读”。 我可能在多个地方做错了,因此欢迎所有答案。谢谢。
sw.Flush();
感到庆幸。我疯狂地尝试弄清楚为什么 MemoryStream 写入数据却没有任何数据! - Karthic Raghupathi