본문 바로가기

c#

using 을 통한 리소스 해제 기법 이번 포스팅에서는 using 을 통한 Dispose 에 대해 알아보겠습니다. Dispose 메서드의 사용이 필요한 객체의 경우 자원을 반납하거나 메모리에서 반드시 소멸시켜야할 대상 입니다. 스트림의 경우 자원을 열었다면 반드시 닫아주는게 원칙 이라는 점은 아실것이라 판단됩니다. 코드를 통해 예제를 살펴 보겠습니다. 우선 텍스트 파일 하나를 StreamReader 를 통해 열고 작업을 종료하고 명시적으로 Close 하는 예제 입니다. StreamReader file = new StreamReader("../../test.txt"); while ((line = file.ReadLine()) != null) { System.Console.WriteLine(line); } file.Close(); 사용에 문제 .. 더보기
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 노드의.. 더보기
Entity Framework 에서 저장프로시저 리턴결과 받기 Entity Framework 에서 저장 프로시저 (Stored Procedure) 를 통해 결과를 리턴 받는 방법을 포스팅 합니다. 우선, ASP.NET MVC 환경에서 ADO.NET Entity Data Model 을 생성하여 테이블 및 저장프로시저를 서버로 부터 만들고, 스캐폴딩을 통하여 컨트롤러를 생성하였다고 가정하도록 하겠습니다. Member 엔티티는 위와 같은 속성으로 구성되어 있고, 저장 프로시저의 내용은 아래와 같습니다. CREATE PROCEDURE [dbo].[Register] @StringID varchar(255), @Password varchar(255), @NickName varchar(255), @Email varchar(255), @Phone varchar(255), @Add.. 더보기
기본 UIViewController Code 와 LifeCycle 우선 프로젝트 솔루션 생성후 생성되어지는 UIViewController 소스를 살펴보도록 하겠습니다.using System; using System.Drawing; using MonoTouch.Foundation; using MonoTouch.UIKit; namespace Xamarin { public partial class XamarinViewController : UIViewController { public XamarinViewController () : base ("XamarinViewController", null) { } /* * DidReceiveMemoryWarning 메소드는, 메모리 오류가 발생시 호출된다. */ public override void DidReceiveMemoryWar.. 더보기