Office 솔루션에서 런타임에 바인딩

Office 응용 프로그램의 개체 모델에 있는 일부 형식은 런타임에 바인딩 기능을 통해 사용할 수 있는 기능을 제공합니다.예를 들어, 일부 메서드와 속성은 Office 응용 프로그램의 컨텍스트에 따라 다른 형식의 개체를 반환할 수 있으며 일부 형식은 컨텍스트에 따라 다른 메서드나 속성을 노출할 수도 있습니다.

적용 대상: 이 항목의 정보는 Office 2013 및 Office 2010의 문서 수준 프로젝트 및 응용 프로그램 수준 프로젝트에 적용됩니다. Office 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.

Visual Basic 프로젝트나 Option Strict 해제 하 고 C# 프로젝트 대상으로 하는 .NET Framework 4 또는 .NET Framework 4.5 이러한 런타임에 바인딩 기능을 사용 하는 형식에 직접 작업할 수 있습니다.

개체 반환 값의 암시적 및 명시적 캐스팅

Microsoft Office PIA(주 interop 어셈블리)의 많은 메서드 및 속성은 몇 가지 형식의 개체를 반환할 수 있기 때문에 Object 값을 반환합니다.예를 들어, ActiveSheet 속성은 해당 반환 값이 활성 시트에 따라 Worksheet 또는 Chart 개체일 수 있기 때문에 Object를 반환합니다.

메서드나 속성이 반환 하는 경우는 Object를 명시적으로 (Visual Basic)에서 개체를 올바른 형식 Visual Basic 프로젝트에서 변환 해야 위치 Option Strict 에.명시적으로 캐스팅할 필요가 없습니다 Object 반환 값을 Visual Basic 프로젝트에서 위치 Option Strict 꺼져 있습니다.

대부분의 경우 참조 문서에 Object를 반환하는 멤버에 대한 가능한 반환 값의 형식이 나와 있습니다.개체를 변환하거나 캐스팅하면 코드 편집기에서 해당 개체에 대한 IntelliSense를 사용할 수 있습니다.

Visual Basic에서의 변환에 대한 자세한 내용은 암시적 변환과 명시적 변환(Visual Basic)CType 함수(Visual Basic)를 참조하십시오.

3xxe951d.collapse_all(ko-kr,VS.110).gif예제

다음 코드 예제에서는 Visual Basic 프로젝트의 개체를 특정 형식으로 캐스팅 하는 방법을 보여 줍니다. 여기서 Option Strict 에 있습니다.이 프로젝트 형식에 명시적으로 캐스팅 해야는 Cells 속성에는 Range.이 예제를 실행하려면 Sheet1이라는 워크시트 클래스가 포함된 문서 수준 Excel 프로젝트가 있어야 합니다.

Dim castRange As Excel.Range = CType(Globals.Sheet1.Cells(1, 1), Excel.Range)

다음 코드 예제에서는 Option Strict가 해제된 Visual Basic 프로젝트와 .NET Framework 4를 대상으로 하는 Visual C# 프로젝트에서 특정 형식으로 개체를 암시적으로 캐스팅하는 방법을 보여 줍니다.이러한 형식의 프로젝트에서는 Cells 속성이 Range로 암시적으로 캐스팅됩니다.이 예제를 실행하려면 Sheet1이라는 워크시트 클래스가 포함된 문서 수준 Excel 프로젝트가 있어야 합니다.

Dim dynamicRange As Excel.Range = Globals.Sheet1.Cells(1, 1)
Excel.Range dynamicRange = Globals.Sheet1.Cells[1, 1];

런타임에 바인딩을 통해서만 사용할 수 있는 멤버 액세스

Office PIA의 일부 속성과 메서드는 런타임에 바인딩을 통해서만 사용할 수 있습니다.Visual Basic 프로젝트 위치 Option Strict 꺼져 있거나 C# 프로젝트를 대상으로는 .NET Framework 4 또는 .NET Framework 4.5, 런타임에 바인딩되는 멤버에 액세스 하려면 이러한 언어의 런타임에 바인딩 기능 사용할 수 있습니다.Visual Basic 프로젝트 위치 Option Strict 켜져 있어야 리플렉션을 사용 하 여 이러한 멤버에 액세스할 수 있습니다.

3xxe951d.collapse_all(ko-kr,VS.110).gif예제

다음 코드 예제에서는 Option Strict가 해제된 Visual Basic 프로젝트나 .NET Framework 4를 대상으로 하는 Visual C# 프로젝트에서 런타임에 바인딩되는 멤버에 액세스하는 방법을 보여 줍니다.이 예제에서는 Word에 있는 파일 열기 대화 상자의 런타임에 바인딩되는 Name 속성에 액세스합니다.이 예제를 사용하려면 Word 프로젝트의 ThisDocument 또는 ThisAddIn 클래스에서 이 예제를 실행하십시오.

Private Sub TestDynamicDialog()
    Dim dialog As Word.Dialog = Application.Dialogs(Word.WdWordDialog.wdDialogFileOpen)
    dialog.Name = "Testing"
    dialog.Show()
    MessageBox.Show(dialog.Name)
End Sub
dynamic dialog = Application.Dialogs[Word.WdWordDialog.wdDialogFileOpen];
dialog.Name = "Testing";
dialog.Show();
MessageBox.Show(dialog.Name);

다음 코드 예제에서는 리플렉션을 사용 하 여 Visual Basic 프로젝트에서의 동일한 작업을 수행 하는 방법을 보여 줍니다. 여기서 Option Strict 에 있습니다.

Dim dlg As Word.Dialog = Application.Dialogs(Word.WdWordDialog.wdDialogFileOpen)
Dim dlgType As Type = GetType(Word.Dialog)

' Set the Name property of the dialog box.
dlgType.InvokeMember("Name", _
    Reflection.BindingFlags.SetProperty Or _
        Reflection.BindingFlags.Public Or _
        Reflection.BindingFlags.Instance, _
    Nothing, dlg, New Object() {"Testing"}, _
    System.Globalization.CultureInfo.InvariantCulture)

' Display the dialog box.
dlg.Show()

' Show the Name property.
MessageBox.Show(dlgType.InvokeMember("Name", _
    Reflection.BindingFlags.GetProperty Or _
        Reflection.BindingFlags.Public Or _
        Reflection.BindingFlags.Instance, _
    Nothing, dlg, Nothing, _
    System.Globalization.CultureInfo.InvariantCulture))

참고 항목

참조

Option Strict 문

리플렉션(C# 및 Visual Basic)

개념

Office 솔루션에서 코드 작성

Office 솔루션의 선택적 매개 변수

기타 리소스

dynamic 형식 사용(C# 프로그래밍 가이드)

Office 솔루션 디자인 및 만들기