[AS3 , C# ,Serialize]AS3 와 C#의 직렬화 비교
[AS3 , C# ,Serialize]AS3 와 C#의 직렬화 비교
먼저 As3.0( AIR2.0 ) 이다
as.swfcsharp.swf
먼저 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 에서 파일경로를 프로젝트 위치로 하면 보안오류가 발생한다.
(아마 둘의 직렬화 파일을 바꿔치기 하면,, 안되겠지. ㅋ )
'C#' 카테고리의 다른 글
[c#] 간단한 Generic List (221) | 2010.12.06 |
---|---|
[C# ,쉬운 이터레이터 만들기] Yield 키워드 간단히 개념잡기 (188) | 2010.12.05 |
[AS3 , C# ,Serialize]AS3 와 C#의 직렬화 비교 (90) | 2010.12.04 |
[c# TCP socket] Clinet가 죽은것을 알아채기 (68) | 2010.12.04 |
[C#]Dictionary foreach (67) | 2010.12.04 |
[Simple Text Writer V0.1] 간편한 파일 쓰기 어플 (65) | 2010.12.04 |
C#
2010.12.04 03:53