Share via


Benutzerdefiniertes Funktoid (BizTalk Server-Beispiel)

Das Beispiel für das benutzerdefinierte Funktoid veranschaulicht, wie ein benutzerdefiniertes Funktoid für BizTalk-Mapper geschrieben wird. Sie können das Funktoid der Visual Studio-Toolbox hinzufügen. Das Funktoid wird in der Toolbox angezeigt, wenn BizTalk-Mapper den Fokus besitzt.

Ein benutzerdefiniertes Funktoid sollte sich in einer BizTalk-Mapper-Assembly befinden, damit es erkannt wird. Es kann in einer beliebigen .NET-kompatiblen Sprache geschrieben werden, z. B. C# oder Visual Basic.

Außerdem muss ein benutzerdefiniertes Funktoid von der Microsoft.BizTalk.BaseFunctoids -Klasse abgeleitet werden, und es muss eine Implementierung für einige Methoden bereitstellen, indem diese überschrieben werden. (Die BaseFunctoid -Klasse wird in der Microsoft.BizTalk.BaseFunctoids.dll-Assembly definiert, die in BizTalk Server enthalten ist.)

Ziel des Beispiels

Das Benutzerdefinierte Funktoidbeispiel implementiert mehrere Funktoide, die jeweils von der BaseFunctoid -Klasse abgeleitet und mehrere Methoden überschrieben werden.

Wenn Sie ein benutzerdefiniertes Funktoid implementieren, können Sie dessen Code inline zugänglich machen. Der Inlinecode führt die Berechnung für das Funktoid aus. Der BizTalk-Mapper-Compiler extrahiert den Inlinecode aus einem Funktoid und bettet diesen in die kompilierten XSLT ein, wenn Sie das Projekt erstellen.

Wenn Ihr benutzerdefiniertes Funktoid keine Inlinecode zur Verfügung stellt, generiert BizTalk-Mapper die XSLT, die Aufrufe an der Stelle in der Assembly ausführen, wo sich das benutzerdefinierte Funktoid befindet. In diesem Fall müssen Sie sicherstellen, dass Ihre benutzerdefinierte Funktoidassembly im globalen Assemblycache (GAC) verfügbar ist, damit sie von der XSLT-Engine gefunden werden kann. Ein benutzerdefiniertes Funktoid muss auch ein eindeutiges GUID-Attribut besitzen. BizTalk-Mapper verwendet die GUID, um zu erkennen, welche Assembly geladen werden soll.

Wichtig

Wenn Sie den Beispielcode des benutzerdefinierten Funktoids wiederverwenden, um eigene Funktoide zu implementieren, dann müssen Sie sicherstellen, dass Sie das GUID-Attribut ändern, damit dieses eindeutig ist.

Speicherort dieses Beispiels

<Beispielpfad>\XmlTools\CustomFunctoid

In der folgenden Tabelle werden die Dateien in diesem Beispiel samt Zweck beschrieben.

Datei(en) BESCHREIBUNG
AssemblyInfo.cs C#-Quellcode der Assemblyinformationen.
CBuildArray.bmp Toolbox-Bitmap.
CConcat.bmp Toolbox-Bitmap.
CExtractArray.bmp Toolbox-Bitmap.
Cleanup.bat Wird verwendet, um die Bereitstellung von Assemblys aufzuheben, die Assemblys aus dem globalen Assemblycache zu entfernen und CustomFunctoid.dll zu löschen.
CLongestString.bmp Toolbox-Bitmap.
CMultiply.bmp Toolbox-Bitmap.
CustomFunctoid.cs C#-Quellcode des benutzerdefinierten Funktoids.
CustomFunctoid.csproj C#-Projekt des benutzerdefinierten Funktoids.
CustomFunctoid.sln Projektmappe des benutzerdefinierten Funktoids.
CustomFunctoidResources.resx Ressourcen des benutzerdefinierten Funktoids.
Setup.bat Wird verwendet, um das Beispiel zu erzeugen, bereitzustellen und zu starten.

Erstellen und Initialisieren dieses Beispiels

Gehen Sie zum Erstellen und Initialisieren des Beispiels für benutzerdefinierte Funktoide wie folgt vor.

So erstellen und initialisieren Sie dieses Beispiel

  1. Ändern Sie in einem Befehlsfenster das Verzeichnis (cd) in den folgenden Ordner:

    <Beispielpfad>\XmlTools\CustomFunctoid

  2. Führen Sie die Datei "Setup.bat" aus, von der folgende Aktionen ausgeführt werden:

    • Erstellt das Beispielprojekt.

    • Kopiert die generierte Assembly in das Verzeichnis Developer Tools\Mapper Extensions.

    • Fügt die generierte Assembly zum globalen Assemblycache (GAC) hinzu.

      Hinweis

      Sie sollten sicherstellen, dass während des Erstellungs- und Initialisierungsprozesses keine Fehler gemeldet wurden, bevor Sie dieses Beispiel ausführen.

Ausführen dieses Beispiels

Gehen Sie zum Ausführen des Beispiels für benutzerdefinierte Funktoide wie folgt vor.

So führen Sie dieses Beispiel aus

  1. Klicken Sie in einem Visual Studio BizTalk-Projekt auf das Menü Extras , und wählen Sie Toolboxelemente auswählen aus.

  2. Wählen Sie im Dialogfeld Toolboxelemente auswählen die Registerkarte BizTalk Mapper-Funktoide aus .

  3. Klicken Sie auf Zurücksetzen, und klicken Sie dann auf OK.

    Hinweis

    Wenn das benutzerdefinierte Funktoid keinen Inlinecode bereitstellt, müssen Sie sicherstellen, dass die zugehörige Assembly im globalen Assemblycache (GAC) zur Verfügung gestellt wird.

  4. Wählen Sie im Menü Dateidie Option Beenden aus, um Visual Studio zu schließen.

  5. Starten Sie die Visual Studio-Eingabeaufforderung.

  6. Geben Sie an der Eingabeaufforderung devenv /setup ein.

  7. Starten Sie Microsoft Visual Studio.

    Die benutzerdefinierten Funktoide (Benutzerdefiniertes Verketten des Funktoids, längste Zeichenfolge, Funktoid des Buildarrays und Funktoid extrahieren) werden auf der Registerkarte Zeichenfolgen-Funktoide der Toolbox angezeigt, und das Funktoid Kumulative Multiplizieren wird auf der Registerkarte Kumulative Funktoide angezeigt.

Entfernen dieses Beispiels

Gehen Sie zum Entfernen des Beispiels für benutzerdefinierte Funktoide wie folgt vor.

So entfernen Sie dieses Beispiel

  1. Entfernen Sie die Funktoide aus der Visual Studio-Toolbox.

    Warnung

    Wenn nach der Ausführung von Cleanup.bat die veralteten benutzerdefinierten Funktoide in der Toolbox weiterhin angezeigt werden (möglicherweise aufgrund eines internen Zwischenspeichervorgangs durch Visual Studio), führen Sie die unten beschriebenen Verfahren aus:

    1. Klicken Sie in einem Visual Studio BizTalk-Projekt auf das Menü Extras , und wählen Sie Toolboxelemente auswählen aus.

    2. Wählen Sie im Dialogfeld Toolboxelemente auswählen die Registerkarte BizTalk Mapper-Funktoide aus .

    3. Suchen Sie die benutzerdefinierten Funktoide (benutzerdefiniertes Funktoid zum Verketten, für die längste Zeichenfolge, zum Erstellen von Arrays, zum Extrahieren von Arrays und zum kumulativen Multiplizieren) in der Liste. Klicken Sie auf das entsprechende Kontrollkästchen , um die Funktoide zu entfernen, und klicken Sie dann auf OK.

      Wenn das oben beschriebene Verfahren nicht funktioniert, führen Sie das unten beschriebene Verfahren aus.

    4. Klicken Sie im Visual Studio BizTalk-Projekt auf die Registerkarte Toolbox , während Sie eine Karte bearbeiten, um die Toolboxpalette aufzurufen.

    5. Klicken Sie mit der rechten Maustaste auf das Toolfeld, und wählen Sie Elemente auswählen aus.

    6. Klicken Sie im Dialogfeld Elemente auswählen auf Zurücksetzen, und klicken Sie dann auf OK.

    7. Schließen Sie alle Instanzen von Visual Studio.

      Wenn das oben beschriebene Verfahren nicht funktioniert, führen Sie das unten beschriebene Verfahren aus.

    8. Starten Sie die Visual Studio-Eingabeaufforderung als Administrator.

    9. Schließen Sie alle aktuell ausgeführten Instanzen von Visual Studio

    10. Geben Sie die folgenden Befehle ein:

      devenv /resetsettings

      devenv /setup

    11. Sie können die ungewünschten Funktoide manuell aus der Toolbox auswählen. Klicken Sie dann mit der rechten Maustaste auf das Funktoid, und klicken Sie auf Löschen.

      Wenn das oben beschriebene Verfahren nicht funktioniert, führen Sie das unten beschriebene Verfahren aus.

    12. Klicken Sie in einem Visual Studio BizTalk-Projekt auf die Registerkarte Toolbox, während Sie eine Karte bearbeiten, um die Toolboxpalette aufzurufen.

    13. Klicken Sie auf die Gruppe Kumulative Funktoide .

    14. Klicken Sie mit der rechten Maustaste auf das Funktoid, das Sie entfernen möchten, und wählen Sie dann Löschen aus, oder drücken Sie die Löschtaste.

    15. Klicken Sie auf die Gruppe Zeichenfolgen-Funktoide .

    16. Klicken Sie mit der rechten Maustaste auf das Funktoid, das Sie entfernen möchten, und wählen Sie dann Löschen aus, oder drücken Sie die Löschtaste.

  2. Wechseln Sie in einem Befehlsfenster in den folgenden Ordner:

    <Beispielpfad>\XmlTools\CustomFunctoid

  3. Führen Sie die Datei Cleanup.bat aus, von der folgende Aktionen ausgeführt werden:

    • Löscht die Assembly aus dem Verzeichnis Developer Tools\Mapper Extensions.

    • Entfernt die Assembly aus dem GAC.

In diesem Beispiel verwendete Klassen oder Methoden

Microsoft.BizTalk.BaseFunctoids.BaseFunctoid

Weitere Informationen

Verwenden der Klasse „BaseFunctoid“
XML-Tools (Ordner für BizTalk Server-Beispiele)