article search result of 'serialize' : 1

  1. 2010.12.04 [AS3 , C# ,Serialize]AS3 와 C#의 직렬화 비교 (90)

[AS3 , C# ,Serialize]AS3 와 C#의 직렬화 비교

[AS3 , C# ,Serialize]AS3 와 C#의 직렬화 비교



먼저 As3.0( AIR2.0 ) 이다
as.swfcsharp.swf

Created with colorer-take5 library. Type 'csharp'

//c#�� [Serializable] 와 비슷한 개념
[RemoteClass]
public class Test
 {
        private var _str:String = "test";
        public function Test()
        {
            
        }
        
        
        public function get str():String
        {
            return _str;
        }

        public function set str(value:String):void
        {
            _str = value;
        }
}


//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\





            
            //********************
            // as3(AIR2.0 ) code
            //********************
            private function init():void
            {                            
                
                //--------------------
                //  save data
                // 
                // 임시저장 위��는 :
                // C:\Documents and Settings\<내계정>\Application Data\TestSerialize\Local Store
                // ---------------------
                
                
                var t:Test = new Test;
                t.str = "321321321ㅋㅋㅋㅋ";
                //파일을 만들고
                var savefile:File = File.applicationStorageDirectory.resolvePath("data.dat");
                
                //스트림으로 기록 한다.
                var fileStream:FileStream = new FileStream();
                fileStream.open(savefile , FileMode.WRITE);
                fileStream.writeObject(t);
                fileStream.close();
                t= null;
                
                
                
                
                
                // ----------------
                // load data
                // ------------------ 
                
                //파일위��를 참고��고
                var loadfile:File = File.applicationStorageDirectory.resolvePath("data.dat");
                //존재여부를 판단��여,
                if(loadfile.exists){
                    var _t:Test;
                    var fileStrem:FileStream = new FileStream();
                    //읽고, 
                    fileStream.open(loadfile , FileMode.READ);
                    //타입캐스팅 한다
                    _t = fileStream.readObject() as Test;
                    
                    trace(_t.str);
                }
            }
 
 
 
 
 
 
 
 
 
 
 
그다음은 c# (3.0)
 
 
 
 
 
 
 

 
 
 
 
 
 
Created with colorer-take5 library. Type 'csharp'

// ****************
// c#(3.0) code
// *****************

using System;
using System.Collections.Generic;
using System.Text;
//* 추가된 네임스��이스 **//
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

namespace ConsoleApplication1
{
    //as3�� [RemoteClass] 와 비슷한개념 //
    [Serializable]
    
    class TestSerilize
    {
        private string str = "test string";
        public String STR
        {
            get{ return str; }
            set { str = value; }
        }
    }


    class Program
    {
        static void Main(string[] args)
        {

            //------------
            // save data
            //------------

            TestSerilize s = new TestSerilize();
            s.STR = "!@!@!zz,zㅋㅋㅋㅋ";
            // 파일을 만들고
            Stream saveFile = new FileStream("data.dat", FileMode.Create, FileAccess.Write , FileShare.None);
            BinaryFormatter bf_save = new BinaryFormatter();
            // 바이너리로 쓴다.
            bf_save.Serialize(saveFile, s);
            saveFile.Close();
            s = null;

            


            //---------
            // loadData
            //-----------
            
            try
            {
                //파일을 읽고,
                Stream loadFile = new FileStream("data.dat", FileMode.Open, FileAccess.Read, FileShare.Read);
                BinaryFormatter bf_load = new BinaryFormatter();
                //바이너리를 읽는다
                TestSerilize _s = (TestSerilize)bf_load.Deserialize(loadFile);
                loadFile.Close();
                Console.WriteLine("deSirialize " + _s.STR);
            }
            catch (IOException e)
            {
                //��시�� ��는,  에러를 ��리한다.
                Console.WriteLine("파일이 없거��..");
            }
        }
    }
}
 
 
 
비슷 하다. 하지만 as3 에서 파일경로를 프로젝트 위치로 하면 보안오류가 발생한다.

(아마 둘의 직렬화 파일을 바꿔치기 하면,, 안되겠지. ㅋ )
Yamecoder 야매코더_
C# 2010.12.04 03:53
Powerd by Tistory, designed by criuce
rss