怪奇物语

怪奇物语

首页 新随笔 联系 管理

对象序列化以及单元测试

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);
            }

        }
    }
}

posted on 2024-01-15 18:23  超级无敌美少男战士  阅读(6)  评论(0)    收藏  举报