gpt4 book ai didi

c# - StreamReader.ReadToEnd 在 C# 中不工作?

转载 作者:行者123 更新时间:2023-11-30 20:06:44 25 4
gpt4 key购买 nike

我正在尝试序列化 Person 类的一个实例:

using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Soap;


[Serializable]
public class Person
{
public string FirstName{ get; set; }
public string MiddleName{ get; set; }
public string LastName{ get; set; }
}

首先,我将对象序列化为JSON并写入MemoryStream,然后将其转换为字符串显示在页面上。

@using System.Runtime.Serialization.Json
@using System.Text


@{ Layout = null;

Person person = new Person();
person.FirstName = "John";
person.MiddleName = "Parker";
person.LastName = "Santos";

MemoryStream s = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Person));
ser.WriteObject(s, person);
string ss;

using(StreamReader sr = new StreamReader(s, new UnicodeEncoding(), false))
{
ss = sr.ReadToEnd();
}
}

@ss

我希望最后一行打印对象的 JSON 格式,但它没有。我怀疑 StreamReader 不工作,因为 MemoryStream s 的长度我认为已经有数据,而 ss 的长度为 0。我做错了什么?

最佳答案

在阅读之前,您必须将内存流的位置设置回开头。

s.Position = 0;

应该可以解决您的问题。请参阅:http://msdn.microsoft.com/en-us/library/system.io.memorystream.position.aspx

关于c# - StreamReader.ReadToEnd 在 C# 中不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9442036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com