Freigeben über


Zugreifen auf Anwendungsdaten

Das InfoPath-Objektmodell mit verwaltetem Code stellt Objekte und Auflistungen bereit, mit deren Hilfe der Zugriff auf Informationen zur InfoPath-Anwendung ermöglicht wird, einschließlich Informationen zu dem einem Formular zugrunde liegenden XML-Dokument und der Formulardefinitionsdatei (XSF). Auf diese Daten wird über das Objekt der obersten Ebene in der InfoPath-Objektmodellhierarchie zugegriffen, das mithilfe der Application-Klasse instanziiert wird.

In einem InfoPath-Formularvorlagenprojekt mit verwaltetem Code, das mit Visual Studio 2012 erstellt wurde, können Sie die Schlüsselwort (keyword) this (C#) oder Me (Visual Basic) verwenden, um auf eine instance der Application-Klasse zuzugreifen, die die aktuelle InfoPath-Anwendung darstellt, die dann für den Zugriff auf die Eigenschaften und Methoden der Application-Klasse verwendet werden kann.

Beispiel

Anzeigen des Anwendungsnamens, der Version und der Sprachen-ID

Im folgenden Beispiel werden die Eigenschaften Name und Version der Application-Klasse verwendet, um den Namen und die Versionsnummer des ausgeführten instance von InfoPath zurückzugeben. Die LanguageSettings-Eigenschaft wird dann verwendet, um ein LanguageSettings-Objekt zurückzugeben, das wiederum verwendet wird, um die LCID (eine vierstellige Zahl) für die Sprache zurückzugeben, die derzeit für die InfoPath-Benutzeroberflächensprache verwendet wird. Schließlich werden alle diese Informationen in einem Meldungsfeld angezeigt.

Wichtig

Damit die LanguageSettings-Eigenschaft funktioniert, müssen Sie auf der Registerkarte COM des Dialogfelds Verweis hinzufügen in Visual Studio 2012 einen Verweis auf die Microsoft Office 14.0-Objektbibliothek einrichten. Dadurch wird ein Verweis auf den Microsoft.Office.Core-Namespace eingerichtet, der die LanguageSettings-Klasse enthält. Darüber hinaus muss das Formular als "Voll vertrauenswürdig" ausgeführt werden.

Dieses Beispiel erfordert eine using- oder Imports-Direktive für den Microsoft.Office.Core-Namespace im Deklarationsabschnitt des Formularcodemoduls.

string appName = this.Application.Name;
string appVersion = this.Application.Version;
LanguageSettings langSettings = 
   (LanguageSettings)this.Application.LanguageSettings;
int langID = 
   langSettings.get_LanguageID(MsoAppLanaguageID.msoLanguageIDUI);
MessageBox.Show(
   "Name: " + appName + System.Environment.NewLine +
   "Version: " + appVersion + System.Environment.NewLine +
   "Language ID: " + langID);
Dim appName As String appName = Me.Application.Name
Dim appVersion As String = Me.Application.Version
Dim langSettings As LanguageSettings = _
   DirectCast(Me.Application.LanguageSettings, LanguageSettings)
Dim langID As Integer = _
   langSettings.LanguageID(MsoAppLanaguageID.msoLanguageIDUI)
MessageBox.Show( _
   "Name: " + appName + System.Environment.NewLine + _
   "Version: " + appVersion + System.Environment.NewLine + _
   "Language ID: " + langID)