본문 바로가기

프로그래밍/C#

using 을 통한 리소스 해제 기법 이번 포스팅에서는 using 을 통한 Dispose 에 대해 알아보겠습니다. Dispose 메서드의 사용이 필요한 객체의 경우 자원을 반납하거나 메모리에서 반드시 소멸시켜야할 대상 입니다. 스트림의 경우 자원을 열었다면 반드시 닫아주는게 원칙 이라는 점은 아실것이라 판단됩니다. 코드를 통해 예제를 살펴 보겠습니다. 우선 텍스트 파일 하나를 StreamReader 를 통해 열고 작업을 종료하고 명시적으로 Close 하는 예제 입니다. StreamReader file = new StreamReader("../../test.txt"); while ((line = file.ReadLine()) != null) { System.Console.WriteLine(line); } file.Close(); 사용에 문제 .. 더보기
JSON Text 파싱 방법 이번 포스팅에서는 Json 데이터를 자신의 임의 객체 혹은 변수로 파싱하는 방법에 대해 알아 보겠습니다. JavaScriptSerializer, Json .NET 을 사용하여 Json String 을 객체로 직렬화 하거나 역직렬화 하는 경우 Json 에 포함된 객체명의 이름을 임의적으로 바꿔줄수 없다는 단점이 존재합니다. 만약, Json 데이터에 포함된 객체명이 대문자로 시작하거나 _(언더바) 로 시작하는 경우 자바나 혹은 C# 에서 네이밍 룰에 어긋나기 때문에 개발자가 임의로 객체명을 바꿔서 저장해야 하는 경우가 생깁니다. 이제 객체명을 내 임의대로 해서 파싱 받는 방법에 대해 소개 하겠습니다. 필요한 어셈블리는 Newtonsoft.Json 일명 Json .NET 입니다. ASP. NET 부터는 참조에.. 더보기
JavaScriptSerializer 를 통한 JSON Serialization 이번 포스팅에서는 .NET Framework 3.5 부터 추가된 JavaScriptSerializer 클래스를 통해 JSON 데이터를 Serialization(직렬화) / Deserialize(역직렬화) 하는 방법에 대해 배워보겠습니다. JavaScriptSerializer 클래스는 Json 데이터를 직렬화 / 역직렬화 하는 기능을 제공하며, System.Web.Script.Serialization 네임스페이스에 포함되어 있습니다. 해당 네임스페이스를 사용하기 위해선 System.Web.Extensions(System.Web.Extensions.dll) 어셈블리를 참조하셔야 합니다. (ASP.NET 에서는 이미 참조되어 있으므로 불필요) 본 포스팅에서는 간단한 Facebook Graph API 를 통해 .. 더보기
LINQ 를 통한 C# XML 파싱 (LINQ to XML) 이번 포스팅에서는 LINQ 를 통한 XML 을 파싱하는 과정을 배워보도록 하겠습니다. 우선 LINQ 및 XML 의 사전 지식이 있다고 가정하고 진행하겠습니다. (적어도 XML의 문서구조, LINQ, 람다식 의 사용 방법 은 숙지 하셔야 합니다.) .NET Framework 3.5 이상 부터 제공하는 XElement 클래스를 사용하면 XML 구성요소를 보다 쉽게 파싱이 가능합니다. XElement 클래스는 System.Xml.Linq 네임스페이스 에서 제공하며, XElement 클래스는 XML의 요소를 나타낼 수 있습니다. 우선, XML 파일을 파싱한다는 가정하에 진행하도록 하겠습니다. 네이버 오픈API 는 XML 형태로 위와 같이 서비스를 제공하고 있습니다. 우리가 파싱해볼 데이터는 channel 노드의.. 더보기