对象序列化以及单元测试
F:\song\netframework_serialize\netframework_serialize\Program.cs
using netframework_serialize.Animal;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;
namespace netframework_serialize
{
internal class Program
{
static void Main(string[] args)
{
var myObject = new Person(1,"Alice");
var formatter = new BinaryFormatter();
using (var stream = new FileStream("myobject.bin", FileMode.Create, FileAccess.Write))
{
formatter.Serialize(stream, myObject);
}
using (var stream = new FileStream("myobject.bin", FileMode.Open, FileAccess.Read))
{
var deserializedObject = (Person)formatter.Deserialize(stream);
Console.WriteLine($"Id: {deserializedObject.Id}, Name: {deserializedObject.getName()}");
}
}
}
}
F:\song\netframework_serialize\netframework_serialize\Animal\Person.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace netframework_serialize.Animal
{
[Serializable]
public class Person
{
public int Id { get; set; }
private string Name { get; set; }
public Person(int id, string name)
{
this.Id = id;
this.Name = name;
}
public string getName()
{
return this.Name;
}
}
}
F:\song\netframework_serialize\PersonTests\UnitTest1.cs
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using netframework_serialize.Animal;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace PersonTests
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
var formatter = new BinaryFormatter();
using (var stream = new FileStream("myobject.bin", FileMode.Open, FileAccess.Read))
{
var deserializedObject = (Person)formatter.Deserialize(stream);
var per2 = new Person(deserializedObject.Id,deserializedObject.getName());
Assert.AreEqual(per2.getName(), "Alice");
Assert.AreEqual(per2.Id, 1);
}
}
}
}
标签:netframework,C#,serialize,单元测试,System,new,var,using,序列化
From: https://www.cnblogs.com/zhuoss/p/17966004