Programmatischer Import von Binärtypen

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  UModel Referenz für Programmierer > Die UModel API > Übersicht > Beispiele für die Verwendung der API > C# >

Programmatischer Import von Binärtypen

Mit UModel können Sie Binärtypen aus .NET- .dll- oder Java .jar-Dateien entweder über die grafische Benutzeroberfläche oder programmatisch über die UModel API importieren. In diesem Beispiel wird gezeigt, wie Sie über die UModel API Binärtypen aus einer NET .dll-Datei in UModel importieren. Informationen zum Import von Binärtypen über die grafische Benutzeroberfläche finden Sie unter Importieren von Java-, C#- und VB.NET-Binärdateien.

 

In diesem Beispiel werden Microsoft Visual Studio 2015 und C# verwendet. Die unten stehende Anleitung ist (mit Ausnahme des Codefragments) ähnlich wie die für VB.NET. Um dieses Beispiel fertig stellen zu können, benötigen Sie eine .dll-Datei, die einige Typen (z.B. Klassen oder Schnittstellen) enthält, die Sie in UModel importieren möchten.

 

Zu diesem Zweck verwenden wir eine vorhandene C#-Demo-Applikation, die bereits in die UModel API integriert ist, anstatt ein Projekt von Grund auf neu zu erstellen. In dieser Demo wollen wir eine neue Schaltfläche hinzufügen. Wenn Sie darauf klicken, wird mit dieser Schaltfläche ein neues UModel-Projekt erstellt, in das Typen aus einer .dll-Datei importiert werden. Starten Sie zuerst Visual Studio und öffnen Sie die folgenden Projektmappe: C:\\Benutzer\<Benutzername>\Dokumente\Altova\UModel2019\UModelExamplesAPI\C#\AutomateUModel_VS2010.sln.

 

Anmerkung:Die Demo-Applikation enthält bereits eine Referenz auf die UModel-Typbibliothek, daher muss nicht mehr explizit eine Referenz hinzugefügt werden. Wenn Sie jedoch ein neues Visual Studio-Projekt erstellen, müssen Sie die UModel-Typbibliothek von Ihrem Projekt aus referenzieren, siehe Referenzieren der UModel-Typbibliothek.

 

Öffnen Sie als nächstes Form1.cs im Design Editor und fügen Sie eine neue Schaltfläche hinzu. Nennen wir diese Import Binary Types.

um_api_bintypes_01

Doppelklicken Sie auf die neue Schaltfläche und fügen Sie den folgenden Code in den Body der Handler-Methode ein. Stellen Sie sicher, dass der Pfad zur .dll-Datei korrekt ist und die .dll-Datei für den Import von Binärtypen geeignet ist (d.h. sie muss verschleiert sein).

 

try
{
  // Create a new document
  UModelDocument = UModel.NewDocument();
  // Instantiate the Import Binary Types dialog
  UModelLib.ImportBinaryTypesDlg dlg = UModel.Dialogs.ImportBinaryTypesDlg;  
  // Set the .NET runtime version according to your environment (must be greater than v2.0)
  dlg.Runtime = "v2.0.50727";
  // Set the import language (C# 6.0, in this case)
  dlg.Language = UModelLib.ENUMCodeLangVersion.eCodeLang_CSharp_6_0;
  // No need to show the dialog since we want to do this programmatically
  dlg.ShowDialog = false;
  // Add a new binary type entry to be imported
  UModelLib.IBinaryTypeEntry entry = dlg.CSharp_BinaryTypes.AddItem();

  // Specify the .dll to import (make sure to adjust the path)
  entry.Entry = "C:\\Path\\To\\My.dll";
  // All types shall be imported from this .dll
  entry.ImportTypes = true;
  // The .dll is an executable
  entry.Executeable = true;
  // Perform the actual import
  UModelDocument.ImportBinaryTypes(dlg);
}
catch (Exception ex)
{
  MessageBox.Show(ex.Message);
}

Import aller Typen

Mit dem obigen Code wird ein neues UModel-Projekt erstellt, die Importoptionen im Dialogfeld "Binärtypen importieren" werden definiert und der Import der Binärtypen wird durchgeführt.

 

Erstellen Sie die Projektmappe und führen Sie sie aus. Klicken Sie auf UModel starten und haben Sie einen Moment Geduld, während die Applikation geladen wird. Klicken Sie erst, wenn die Applikation fertig geladen wurde, auf Import Binary Types und überprüfen Sie das Ergebnis im Fenster "Meldungen" von UModel.

 

Wenn Sie nur bestimmte Typen importieren möchten, setzen Sie die Eigenschaft ImportTypes auf false und stellen Sie die zu importierenden Typen als Argumente für die Methode TypesToImport bereit. Die Liste der unterschiedlichen Typen kann, wie im Codefragment unten gezeigt, durch Kommas, Semikola oder Leerzeichen getrennt werden.

 

try
{
  UModelDocument = UModel.NewDocument();
  UModelLib.ImportBinaryTypesDlg dlg = UModel.Dialogs.ImportBinaryTypesDlg;
  dlg.ShowDialog = false;
  dlg.CSharp_BinaryTypes.RemoveAllItems();
  UModelLib.IBinaryTypeEntry entry = dlg.CSharp_BinaryTypes.AddItem();
  entry.Entry = "C:\\Path\\To\\My.dll";
  entry.ImportTypes = false;
  entry.Executeable = true;

  // import only specific types:
  entry.TypesToImport = "MyNamespace.Class1; MyNamespace.Class2";
  UModelDocument.ImportBinaryTypes(dlg);
}
catch (Exception ex)
{
  MessageBox.Show(ex.Message);
}

Import bestimmter Typen


© 2019 Altova GmbH