본문 바로가기

워크/C# 4.0

COM Interop 개선사항

C# 4.0에서의 COM Interop 개선사항 중 가장 주요한 것은 dynamic 키워드를 사용하여 COM 객체를 더욱 쉽게 다룰 수 있게 된 것입니다. 그 결과, C#에서 Office 어플리케이션과 같은 COM 기반 컴포넌트를 조작할 때 코드가 훨씬 깔끔해졌습니다.

이를 보여주기 위해 간단하게 Excel을 사용하는 예제를 제공하겠습니다. 이 예제는 C# 4.0의 dynamic 키워드를 사용하여 Excel의 새로운 워크북을 생성하고 데이터를 입력하는 코드입니다.

using System;
using System.Runtime.InteropServices;

namespace COMInteropExample
{
    class Program
    {
        static void Main()
        {
            dynamic excelApp = Activator.CreateInstance(Type.GetTypeFromProgID("Excel.Application"));

            excelApp.Visible = true;

            dynamic workbooks = excelApp.Workbooks;
            dynamic workbook = workbooks.Add();
            dynamic worksheet = workbook.Worksheets[1];

            worksheet.Cells[1, 1].Value = "Hello";
            worksheet.Cells[1, 2].Value = "World!";

            // 정리
            Marshal.ReleaseComObject(worksheet);
            Marshal.ReleaseComObject(workbook);
            Marshal.ReleaseComObject(workbooks);
            excelApp.Quit();
            Marshal.ReleaseComObject(excelApp);
        }
    }
}

이 코드는 Excel 애플리케이션을 시작하고 새로운 워크북과 워크시트를 추가하여 "Hello"와 "World!"를 첫 번째 행에 입력합니다.

주의사항:

  • 이 코드를 실행하려면 대상 시스템에 Excel이 설치되어 있어야 합니다.
  • Office PIA(Primary Interop Assembly) 참조가 필요하지 않은 경우가 있지만, 특정 기능을 사용하기 위해서는 추가해야 할 수도 있습니다.
  • COM 객체는 관리되지 않는 리소스이므로 적절하게 해제하는 것이 중요합니다.

이 예제는 C#에서 COM Interop을 사용하여 Excel을 조작하는 방법을 간략하게 보여줍니다. dynamic을 사용하면 이전 버전보다 훨씬 간결하고 직관적인 코드를 작성할 수 있습니다.