Altova UModel 2024 Enterprise Edition

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 wird Visual Studio 2019 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\UModel2024\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 darf nicht 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) or use "any"
  dlg.Runtime = "any";
  // Set the import language (C# 8.0, in this case)
  dlg.Language = UModelLib.ENUMCodeLangVersion.eCodeLang_CSharp_8_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.

 

So führen Sie den C#-Code aus und importieren Binärtypen:

 

1.Drücken Sie F5, um die Visual Studio-Projektmappe zu erstellen und auszuführen.

2.Klicken Sie im daraufhin angezeigten Windows-Formular auf UModel starten und warten Sie, bis die UModel-Applikation geladen ist.

3.Klicken Sie erst, nachdem UModel 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

© 2017-2023 Altova GmbH