C#シーケンス化

13272 ワード

C#シーケンス化
1.なぜシーケンス化が必要なのか
例えば、C#で書かれたオブジェクトデータの一部は、Javaで書かれたモジュールで使用されるシナリオに渡されます.異なる言語間でオブジェクトデータを交換するのは、各オブジェクトが立体的で、多くのデータ量を持っているため、多くの不便な点があります.したがって,この場合のデータ交換を実現するにはbyteや文字列,あるいは他のより容易に伝送・識別できるデータフォーマットにオブジェクトを変換する必要があるため,伝送する一端に対してデータをシーケンス化し,受信データの一端に対数データを逆シーケンス化する必要がある.
2.シーケンス化とは
オブジェクトシーケンス化(Serilization)とは、オブジェクトを指定された方法、指定されたシーケンス組織方式で組織することである.シーケンス化とは、データを何らかのルールでキューに入れることです.シーケンス化--フォーマットとも呼ばれ、データを一定のフォーマットで保存します.逆シーケンス化とは、シーケンス化されたルールに従って元のフォーマットに復元されます.
3.シーケンス化の方法
一般的なシーケンス化方法は3つあります.
  • オブジェクトをbyte配列BinaryFormaterクラス
  • に変換
    
    //        ,      Serilize           
    [Serializable]
    public class Student
    {
        private string _firstName;
        private string _lastName;
        private int _age;
    
        public string FirstName { get => _firstName; set => _firstName = value; }
        public string LastName { get => _lastName; set => _lastName = value; }
        public int Age { get => _age; set => _age = value; }
    
        public Student(string fi, string la, int age)
        {
            this._firstName = fi;
            this._lastName = la;
            this._age = age;
        }
    
    }
    
    //     BinaryFormatterTest ,              ,      
    public class BinaryFormatterTest
    {
        //           ,              
        public static void ObjectToBinary<T>(T u)
        {
            string path = "D:\\xx.data";
            FileStream fs = new FileStream(path, FileMode.Create);
            BinaryFormatter bf = new BinaryFormatter();
            bf.Serilize(fs, u);
            fs.Close();
        }
        //          ,       
        public static object BinaryToObject(string path)
        {
            FileStream fs = new FileStream(path, FileMode.Open);
            BinaryFormatter = new BinaryFormatter();
            return bf.Deserilize(fs);
        }
    }
    class Program
    {
        void Serilize()
        {
            List<Student> stus = new List<Student>
                {
                    new Student("ueh","mdks",18),
                    new Student("Asd","fdfd",39),
                    new Student("sshd","fduid",26)
                };
    
            BinaryFormatterTest.ObjectToBinary<List<Student>>(stus);
            Console.WriteLine("     );
    
    
    }
        void Deserilize()
        {
            string str = strig.Empty;
            var list = BinaryFormatter.BinatyToObject(@"D:\xx.data") as List<Student>;
            foreach (Student item in list)
            {
                str += $"Name={item.FirstName}.{Item.LastName}" + "
    "
    ; } Console.WriteLine(str); } static void Main() { //Serilize(); Deserilize(); Console.ReadKey(); } }
  • オブジェクトをxmlファイル
  • に変換する
    
    
    

    3.対象をjsonにする
    
    
    
    

    リファレンス