Condividi tramite


Associazione tardiva nelle soluzioni Office

Alcuni tipi nei modelli a oggetti di applicazioni di Office forniscono una funzionalità disponibile tramite le funzionalità di associazione tardiva.Ad esempio, alcuni metodi e proprietà possono restituire diversi tipi di oggetti in base al contesto dell'applicazione di Office e alcuni tipi possono esporre metodi o proprietà diversi in contesti diversi.

Si applica a: le informazioni fornite in questo argomento sono valide per i progetti a livello di documento e di applicazione per Office 2013 e Office 2010. Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazioni di Office.

I progetti di Visual Basic. Option Strict dove non è attiva e Visual c destinati a .NET Framework 4 o .NET Framework 4.5 può utilizzare direttamente i tipi che utilizzano queste funzionalità di associazione tardiva.

Esecuzione del cast implicita ed esplicita dei valori restituiti dell'oggetto

Molti metodi e proprietà degli assembly di interoperabilità primari di Microsoft Office restituiscono i valori Object poiché possono restituire diversi tipi di oggetti.Ad esempio, la proprietà ActiveSheet restituisce un Object perché il valore restituito può essere un oggetto Worksheet o Chart, in base al foglio attivo.

Quando un metodo o una proprietà restituisce Object, è necessario convertire in modo esplicito (in Visual Basic) l'oggetto al tipo corretto nei progetti di Visual Basic. in cui Option Strict è attivata.Non è necessario eseguire il cast in modo esplicito dei valori restituiti di Object nei progetti di Visual Basic. Option Strict dove non è attiva.

Nella maggior parte dei casi, nella documentazione di riferimento vengono elencati i possibili tipi di valore restituito per un membro che restituisce un Object.La conversione o il cast dell'oggetto determina l'attivazione di IntelliSense per tale l'oggetto nell'editor del codice.

Per informazioni sulla conversione in Visual Basic, vedere Conversioni implicite ed esplicite (Visual Basic) e Funzione CType (Visual Basic).

3xxe951d.collapse_all(it-it,VS.110).gifEsempi

Nell'esempio di codice seguente viene illustrato come eseguire il cast di un oggetto a un tipo specifico in un progetto di Visual Basic. in cui Option Strict è attivata.In questo tipo di progetto, è necessario eseguire esplicitamente il cast della proprietà di Cells a Range.In questo esempio viene richiesto un progetto Excel a livello di documento con una classe del foglio di lavoro denominata Sheet1.

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

Nell'esempio di codice seguente viene dimostrato come eseguire in modo implicito il cast di un oggetto a un tipo specifico in un progetto di Visual Basic dove Option Strict non è attiva o in un progetto di Visual C# che ha .NET Framework 4 come destinazione.In questi tipi di progetti, viene eseguito il cast in modo implicito della proprietà Cells a un Range.In questo esempio viene richiesto un progetto Excel a livello di documento con una classe del foglio di lavoro denominata Sheet1.

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

Accesso ai membri disponibili solo tramite associazione tardiva

Alcune proprietà e metodi negli assembly di interoperabilità primari di Office sono disponibili solo tramite associazione tardiva.Nei progetti di Visual Basic. in cui Option Strict è attiva o in Visual c destinati a .NET Framework 4 o .NET Framework 4.5, è possibile utilizzare le funzionalità di associazione tardiva in questi linguaggi per accedere ai membri ad associazione tardiva.Nei progetti di Visual Basic. Option Strict dove è attiva, è necessario utilizzare la reflection per accedere a questi membri.

3xxe951d.collapse_all(it-it,VS.110).gifEsempi

Nell'esempio di codice seguente viene dimostrato come accedere ai membri associati in modo tardivo in un progetto di Visual Basic dove Option Strict non è attiva o in un progetto di Visual C# che ha .NET Framework 4 come destinazione.In questo esempio viene eseguito l'accesso alla proprietà Name associata in modo tardivo della finestra di dialogo Apri file in Word.Per utilizzare questo esempio, eseguirlo dalla classe ThisDocument o ThisAddIn del progetto Word.

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);

Nell'esempio di codice seguente viene illustrato come utilizzare la reflection per eseguire la stessa attività in un progetto di Visual Basic. in cui Option Strict è attivata.

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))

Vedere anche

Riferimenti

Istruzione Option Strict

Reflection (C# e Visual Basic)

Concetti

Scrittura di codice nelle soluzioni Office

Parametri facoltativi nelle soluzioni Office

Altre risorse

Utilizzo del tipo dinamico (Guida per programmatori C#)

Progettazione e creazione di soluzioni Office