Freigeben über


Entwickeln eines benutzerdefinierten Funktoids, auf das verwiesen wird

Benutzerdefinierte Funktoide, auf die verwiesen wird, kopieren keinen Implementierungscode inline in die Zuordnung. Stattdessen wird ein Verweis auf die Assembly, Klasse und Methode in die Erweiterungsobjektdatei eingefügt, die dem generierten Stylesheet zugeordnet ist und zur Laufzeit aufgerufen wird.

Beispiel

Im folgenden Beispiel wird gezeigt, wie ein benutzerdefiniertes Funktoid, auf das verwiesen wird, zum Zusammenfügen von zwei Zeichenfolgen erstellt wird. Es beruht auf einer Ressourcendatei mit drei Zeichenfolgenressourcen und einer 16x16-Pixel-Bitmapressource.

using System;  
using Microsoft.BizTalk.BaseFunctoids;  
using System.Reflection;  
  
namespace Microsoft.Samples.BizTalk.CustomFunctoid  
{  
    /// <summary>  
    /// Performs a string concatenation through assembly referenced function. Assembly must be deployed with the BizTalk solution.  
    /// </summary>  
    public class CustomStringConcatFunctoid : BaseFunctoid  
    {  
        public CustomStringConcatFunctoid()  
            : base()  
        {  
            //ID for this functoid  
            this.ID = 6001;  
  
            // Resource assembly must be ProjectName.ResourceName if building with VS.Net  
            SetupResourceAssembly("Microsoft.Samples.BizTalk.CustomFunctoid.CustomFunctoidResources", Assembly.GetExecutingAssembly());  
  
            // Pass the resource ID names for functoid name, tooltip  
            // description and the 16x16 bitmap for the Map palette  
            SetName("IDS_CUSTOMSTRINGCONCATFUNCTOID_NAME");  
            SetTooltip("IDS_CUSTOMSTRINGCONCATFUNCTOID_TOOLTIP");  
            SetDescription("IDS_CUSTOMSTRINGCONCATFUNCTOID_DESCRIPTION");  
            SetBitmap("IDB_CUSTOMSTRINGCONCATFUNCTOID_BITMAP");  
  
            // Put this string handling function under the String   
            // Functoid tab in the Visual Studio toolbox for functoids  
            this.Category = FunctoidCategory.String;  
  
            // 2 required parameters, no optional parameters  
            this.SetMinParams(2);  
            this.SetMaxParams(2);  
  
            // Functoid accepts two inputs  
            AddInputConnectionType(ConnectionType.AllExceptRecord);  
            AddInputConnectionType(ConnectionType.AllExceptRecord);  
  
            // Set the output connection type  
            this.OutputConnectionType = ConnectionType.AllExceptRecord;  
  
            // Set the function name that needs to be called  
            // when this functoid is invoked.  The resulting assembly  
            // must be present in the Global Assembly Cache  
            // to ensure its availability.  
            SetExternalFunctionName(GetType().Assembly.FullName, "Microsoft.Samples.BizTalk.CustomFunctoid.CustomStringConcatFunctoid", "ConCatStrings");  
        }  
  
        // This function is executed by BizTalk to do the concatenation  
        public string ConCatStrings(string val1, string val2)  
        {  
            return val2 + val1;  
        }  
    }  
}  

Weitere Informationen

Verwenden der Klasse „BaseFunctoid“
Entwickeln eines benutzerdefinierten Inlinefunktoids
Entwickeln eines benutzerdefinierten kumulativen Funktoids
Benutzerdefiniertes Funktoid (BizTalk Server-Beispiel)