본문 바로가기

워크/C# 4.0

임베디드 Interop 형식 (Embedded Interop Types)

C# 4.0에서는 임베디드 Interop 형식(Embedded Interop Types)이라는 기능이 도입되었습니다. 이 기능은 특히 Office와 같은 COM 구성 요소와 상호 작용할 때 유용합니다. 임베디드 Interop 형식을 사용하면 Primary Interop Assembly (PIA)를 직접 참조하지 않고도 해당 형식의 복사본을 어셈블리에 포함시킬 수 있습니다. 이로 인해 배포가 간단해지고, PIA가 설치되지 않은 시스템에서도 어플리케이션을 실행할 수 있게 됩니다.

아래는 임베디드 Interop 형식을 사용하는 간단한 예시입니다. 이 예시에서는 Microsoft Office Excel을 사용하며, 이를 위해 "Microsoft.Office.Interop.Excel"을 참조해야 합니다.

먼저, "Microsoft.Office.Interop.Excel" 참조를 추가합니다. 이 때, 참조 속성에서 "Embed Interop Types" 옵션을 "True"로 설정해야 합니다.

using System;
using Excel = Microsoft.Office.Interop.Excel;

namespace EmbeddedInteropTypesExample
{
    class Program
    {
        static void Main()
        {
            var excelApp = new Excel.Application();
            excelApp.Visible = true;

            var workbooks = excelApp.Workbooks;
            Excel.Workbook workbook = workbooks.Add();
            Excel._Worksheet worksheet = (Excel._Worksheet)workbook.Worksheets[1];

            worksheet.Cells[1, 1].Value = "Hello";
            worksheet.Cells[1, 2].Value = "Embedded Interop Types!";

            // 엑셀 앱을 종료하지 않음 (사용자가 수동으로 종료 가능)
        }
    }
}

이 예제는 Excel 애플리케이션을 시작하여 새로운 워크북을 추가하고 워크시트에 메시지를 입력합니다.

"Embed Interop Types"을 "True"로 설정하면 해당 COM 라이브러리의 형식이 직접 어셈블리에 포함되므로, 실행 대상 시스템에 해당 PIA가 설치되어 있지 않아도 프로그램을 실행할 수 있게 됩니다.