Я пытаюсь сериализовать экземпляр класса 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. Что я делаю неправильно?