C# 自定义序列化和反序列化流测试用例失败

C# 自定义序列化和反序列化流测试用例失败,c#,C#,我试图通过编写测试用例来测试我的自定义序列化和反序列化逻辑,但无法测试是因为在反序列化过程中读取流时出现了此错误 EndOfStreamException无法读取流结尾以外的内容 我是正确使用内存流还是应该使用其他流?共享代码: [TestClass] public class SerialTest { [TestMethod] public void SerializationTestUsingStream() { Employee emp = new

我试图通过编写测试用例来测试我的自定义序列化和反序列化逻辑,但无法测试是因为在反序列化过程中读取流时出现了此错误

EndOfStreamException无法读取流结尾以外的内容

我是正确使用内存流还是应该使用其他流?共享代码:

[TestClass]
public class SerialTest
{
    [TestMethod]
    public void SerializationTestUsingStream()
    {
        Employee emp = new Employee(20);

        MemoryStream stream = new MemoryStream();

        this.SerializeEmployee(stream, emp);
        StreamReader reader = new StreamReader(stream);
        string text = reader.ReadToEnd(); // shows Empty string ""
        var newEmp = this.DeserializeEmployee(stream);
        emp.Should().Equals(newEmp);
    }

    private void SerializeEmployee(Stream stream, Employee collection)
    {
        using (BinaryWriter writer = new BinaryWriter(stream, Encoding.UTF8, true))
        {
            writer.Write(collection.age);
        }
    }

    private Employee DeserializeEmployee(Stream stream)
    {
        using (var reader = new BinaryReader(stream, Encoding.UTF8, true))
        {
            int age = reader.ReadInt32(); // Exception Comes here while reading from the stream
            return new Employee(age);
        }
    }

    internal class Employee
    {
        public Employee(int age)
        {
            this.age = age;
        }

        public int age { get; set; }
    }
}

在读取流之前,需要重置流的位置

stream.Position = 0L;

在读取流之前,需要重置流的位置

stream.Position = 0L;