Informazioni sull'assembly di interoperabilità primario di Microsoft Office InfoPath

L'applicazione Microsoft Office InfoPath 2007 è un'applicazione COM (Component Object Model) che espone le interfacce di programmabilità sia per l'automazione esterna che per lo script utilizzati all'interno dei modelli di modulo come interfacce COM. Per supportare la creazione di soluzioni InfoPath che utilizzano linguaggi di codice distribuito, ad esempio Visual C# e Visual Basic, l'opzione Supporto programmabilità .NET del programma di installazione Office InfoPath 2007 installa tre assembly di interoperabilità, ovvero assembly .NET che fungono da tramite tra codice gestito e non gestito, eseguendo il mapping tra i membri degli oggetti COM e i membri gestiti .NET equivalenti.

I file dei tre assembly di interoperabilità installati da InfoPath sono denominati:

  • Microsoft.Office.Interop.InfoPath.dll

  • Microsoft.Office.Interop.InfoPath.SemiTrust.dll

  • Microsoft.Office.Interop.InfoPath.Xml.dll

In questo argomento viene discusso il modello a oggetti esposto tramite l'assembly di interoperabilità Microsoft.Office.Interop.InfoPath, che viene utilizzato esclusivamente per il codice di automazione esterna. Per informazioni sull'assembly Microsoft.Office.Interop.InfoPath.SemiTrust, che viene utilizzato esclusivamente per scrivere ed eseguire codice gestito dai modelli di modulo di InfoPath con estensione xsn, vedere Modelli a oggetti compatibili con InfoPath 2003.

Informazioni importanti sull'installazione

Per impostazione predefinita, l'opzione di installazione Tipica del programma di installazione di Office InfoPath 2007 installa l'assembly Microsoft.Office.Interop.InfoPath nella Cache di assembly globale (CAG), il cui contenuto può essere visualizzato dalla cartella C:\Windows\Assembly. Viene fatto riferimento all'assembly come "Assembly di interoperabilità primario di Microsoft Office InfoPath" e, di norma, viene utilizzato insieme all'assembly Microsoft.Office.Interop.InfoPath.Xml, installato anch'esso nella CAG, per automatizzare l'applicazione InfoPath dalle applicazioni esterne che utilizzano codice gestito. Per informazioni sull'assembly Microsoft.Office.Interop.InfoPath.Xml, vedere Informazioni sull'assembly di interoperabilità XML di InfoPath.

Se l'assembly Microsoft.Office.Interop.InfoPath non è visibile nella GAC, è consigliabile verificare che Office InfoPath 2007 sia installato correttamente. Se prima di eseguire il programma di installazione è stato installato .NET Framework 1.1 Redistributable o .NET Framework 1.1 Software Development Kit (SDK), l'opzione Supporto programmabilità .NET nel programma di installazione di InfoPath è impostata su Esecuzione dal computer locale per un'installazione Tipica di InfoPath. Se questi assembly di interoperabilità non sono disponibili nel computer locale, è necessario verificare che .NET Framework 1.1 sia installato e quindi eseguire Installazione applicazioni dal Pannello di controllo e impostare l'opzione Supporto programmabilità .NET di Microsoft Office InfoPath su Esecuzione dal computer locale.

Per informazioni sul download di .NET Framework 1.1 Redistributable, vedere .NET Framework 1.1 Redistributable. (in lingua inglese)

Spazio dei nomi Microsoft.Office.Interop.InfoPath

Sebbene il processo di scrittura del codice gestito per una determinata attività in un modello di modulo di InfoPath sia molto simile a quello necessario per l'esecuzione della stessa attività di programmazione mediante un linguaggio COM, ad esempio Microsoft Visual Basic o JScript, il modello a oggetti esposto durante la visualizzazione dello spazio dei nomi Microsoft.Office.Interop.InfoPath dal Visualizzatore oggetti in Microsoft Visual Studio risulta più complesso. Ciò è dovuto al fatto che per esporre tutte le interfacce pubbliche, l'interoperabilità con .NET Framework richiede un server COM, nonché alcuni costrutti aggiuntivi richiesti da .NET Framework stesso. Per ulteriori informazioni sui motivi per i quali il modello a oggetti esposto da un assembly di interoperabilità appare più complesso e sulle modalità di visualizzazione, vedere la sezione "Esporre gli oggetti COM nel codice gestito" dell'argomento Modelli a oggetti compatibili con InfoPath 2003.

Utilizzo di IntelliSense

Gli esempi in questa sezione presuppongono che siano stati definiti riferimenti agli assembly Microsoft.Office.Interop.InfoPath e Microsoft.Office.Interop.InfoPath.Xml. Per informazioni su come eseguire tale procedura e per esempi di automazione esterna aggiuntivi, vedere Scenari ed esempi di automazione esterna.

Prima di poter utilizzare il completamento automatico delle istruzioni di Microsoft IntelliSense nel codice di automazione esterna, è necessario creare una variabile oggetto per un'istanza della classe Application, come illustrato nella riga di codice seguente.

Application myApp = 
    new Microsoft.Office.Interop.InfoPath.Application();
Dim myApp As Application = _
    New Microsoft.Office.Interop.InfoPath.Application()

Dopo aver creato la variabile oggetto, quando si digita il nome della variabile seguito da un punto, viene visualizzato un elenco a discesa con i membri della classe Application da selezionare.

Per utilizzare un modulo di InfoPath, dichiarare una variabile oggetto di tipo XDocument, quindi inizializzarla aprendo il modulo dall'insieme XDocuments della variabile oggetto Application, come illustrato nella riga di codice seguente.

XDocument myXDoc = myApp.XDocuments.Open(
    "c:\\temp\\Form1.xml",
    (int) XdDocumentVersionMode.xdFailOnVersionOlder);
Dim myXDoc As XDocument = myApp.XDocuments.Open( _
    "c:\\temp\\Form1.xml", _
    XdDocumentVersionMode.xdFailOnVersionOlder)

L'elenco a discesa del completamento automatico delle istruzioni di IntelliSense per i membri della classe XDocument viene visualizzato quando si digita il nome della variabile seguito da un punto.

Per utilizzare il contenuto del documento XML sottostante per il modulo utilizzando Microsoft XML Core Services (MSXML) 5.0 per Microsoft Office, è necessario creare una variabile di tipo IXMLDOMDocument2, quindi utilizzare la proprietà DOM della classe XDocument per assegnare il modello DOM (Document Object Model) XML del modulo alla variabile.

IXMLDOMDocument2 doc= myXDoc.DOM as IXMLDOMDocument2;
Dim doc As IXMLDOMDocument2 = myXDoc.DOM

L'elenco a discesa del completamento automatico delle istruzioni di IntelliSense per i membri della classe IXMLDOMDocument2 viene visualizzato quando si digita il nome della variabile seguito da un punto, per consentire di utilizzare MSXML 5.0 con il documento XML.

Utilizzo della documentazione di riferimento alla Libreria di classi

L'organizzazione della documentazione di riferimento alla Libreria di classi per lo spazio dei nomi Microsoft.Office.Interop.InfoPath riflette le relazioni tra le interfacce delle coclassi e le interfacce ereditate implementate. Gli argomenti sono organizzati come nella Guida di riferimento al modello a oggetti di InfoPath per la scrittura dello script che fa parte della Guida di riferimento per gli sviluppatori di InfoPath inclusa in Office InfoPath 2007. Ad eccezione degli argomenti relativi alle interfacce Application e XDocument, tutti gli argomenti delle interfacce delle coclassi COM sono associati agli argomenti equivalenti "Oggetto" e "Insieme" della guida di riferimento allo script di InfoPath. Ad esempio, il contenuto degli argomenti "Interfaccia UIObject" e "Interfaccia WindowsCollection" della guida di riferimento allo spazio dei nomi Microsoft.Office.Interop.InfoPath corrisponde o è simile al contenuto degli argomenti "Oggetto UI" e "Insieme Windows" delle informazioni sullo script della Guida di riferimento al modello a oggetti di InfoPath.

Tuttavia, il collegamento ai membri dell'interfaccia della coclasse che segue la descrizione dell'interfaccia all'inizio dell'argomento rimanda a un argomento vuoto. Per visualizzare l'elenco dei membri implementati dall'interfaccia della coclasse, è necessario aprire l'argomento dell'interfaccia più recente ereditata dalla coclasse e quindi aprire la tabella dei suoi membri. All'inizio della sezione Osservazioni, nell'argomento sull'interfaccia della coclasse, è presente un collegamento all'interfaccia ereditata.

Quando si preme F1 nell'editor di codice di Visual Studio, il comportamento è analogo tranne per il fatto che il membro per cui si richiama la Guida sensibile al contesto verrà visualizzato direttamente, perché nella maggior parte dei casi si utilizzano i membri di un'interfaccia. Il fatto che un membro possa essere implementato da un'interfaccia con versione, tuttavia, può inizialmente creare confusione. Se ad esempio si digita myXDocument.UI.Alert, si posiziona il cursore su Alert e si preme F1, viene visualizzato un argomento intitolato "Metodo UI2.Alert" in quanto il metodo Alert è un'implementazione di un membro dell'interfaccia UI2.

Passaggio di parametri facoltativi ai membri del modello a oggetti di InfoPath

Se un membro di un modello a oggetti di InfoPath contiene un parametro facoltativo e non si specifica un valore per tale parametro, è necessario passare il campo Type.Missing relativo a tale parametro. Se non si passa il campo Type.Missing quando viene omesso un valore effettivo, verrà restituito un errore durante la generazione. Questo vale per il codice scritto sia in C# che in Visual Basic .NET. Ad esempio, il metodo SelectNodes dell'interfaccia ViewObject include due parametri facoltativi: varEndNode e varViewContext. Negli esempi seguenti viene illustrato l'aspetto di una riga di codice in cui non vengono specificati valori effettivi per questi parametri facoltativi.

myXDocument.View.SelectNodes(group1, Type.Missing, Type.Missing);
myXDocument.View.SelectNodes(group1, Type.Missing, Type.Missing)

Vedere anche

Concetti

Scenari ed esempi di automazione esterna