Taal
Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
SSIS Integration Runtime in Azure Data Factory
De stappen die nodig zijn bij het maken van een aangepaste voor elke enumerator lijken op die voor het maken van elk ander aangepast object voor Integration Services:
Maak een nieuwe klasse aan die erft van de basisklasse. Voor een foreach-enumerator is de basisklasse .ForEachEnumerator
Pas het attribuut toe dat het type object identificeert op de klasse. Voor een foreach-enumerator is het attribuut .DtsForEachEnumeratorAttribute
Overschrijf de implementatie van de methoden en eigenschappen van de basisklasse. Voor een foreach-enumerator is de GetEnumerator methode het belangrijkst.
Ontwikkel optioneel een aangepaste gebruikersinterface. Voor een foreach enumerator is hiervoor een klasse nodig die de IDTSForEachEnumeratorUI interface implementeert.
Een aangepaste enumerator wordt door de ForEachLoop container gehost. Tijdens uitvoering roept de ForEachLoop container de GetEnumerator methode van de aangepaste enumerator aan. De aangepaste enumerator geeft een object terug dat de IEnumerable-interface implementeert , zoals een ArrayList. Vervolgens herhaalt hij ForEachLoop elk element in de collectie, levert de waarde van het huidige element aan de controlestroom via een door de gebruiker gedefinieerde variabele, en voert de controlestroom uit in de container.
Beginnen met een aangepaste Voor Elke Enumerator
Projecten en Cursussen Creëren
Omdat alle managed foreach-enumerators afkomstig zijn van de ForEachEnumerator basisklasse, is de eerste stap bij het maken van een custom foreach-enumerator het maken van een class library-project in je favoriete beheerde programmeertaal en het maken van een klasse die van de basisklasse erft. In deze afgeleide klasse overschrijf je de methoden en eigenschappen van de basisklasse om je aangepaste functionaliteit te implementeren.
Maak in dezelfde oplossing een bibliotheekproject van de tweede klasse voor de aangepaste gebruikersinterface. Een aparte assembly voor de gebruikersinterface wordt aanbevolen voor het gemak van de implementatie, omdat je hiermee de foreach enumerator of de gebruikersinterface onafhankelijk kunt updaten en opnieuw uitrollen.
Configureer beide projecten om de assemblies te signeren die tijdens de bouw worden gegenereerd door gebruik te maken van een strong name key-bestand.
Het toepassen van het attribuut DtsForEachEnumerator
Pas het DtsForEachEnumeratorAttribute attribuut toe op de klasse die je hebt aangemaakt om deze als een foreach enumerator te identificeren. Deze attribuut levert ontwerptijd-informatie zoals de naam en beschrijving van de foreach-enumerator. De eigenschap Naam verschijnt in de dropdownlijst van beschikbare enumerators op het tabblad Collectie van het Foreach Loop Editor-dialoogvenster.
Gebruik de UITypeName eigenschap om de foreach enumerator te koppelen aan de aangepaste gebruikersinterface. Om het publieke sleuteltoken te verkrijgen dat voor deze eigenschap vereist is, moet je sn.exe -t gebruiken om het publieke sleuteltoken uit het sleutelpaar (.snk) bestand te tonen dat je wilt gebruiken om de gebruikersinterface-assembly te ondertekenen.
Imports System
Imports Microsoft.SqlServer.Dts.Runtime
Namespace Microsoft.Samples.SqlServer.Dts
<DtsForEachEnumerator(DisplayName = "MyEnumerator", Description="A sample custom enumerator", UITypeName="FullyQualifiedTypeName,AssemblyName,Version=1.00.000.00,Culture=Neutral,PublicKeyToken=<publickeytoken>")> _
Public Class MyEnumerator
Inherits ForEachEnumerator
'Insert code here.
End Class
End Namespace
using System;
using Microsoft.SqlServer.Dts.Runtime;
namespace Microsoft.Samples.SqlServer.Dts
{
[DtsForEachEnumerator( DisplayName = "MyEnumerator", Description="A sample custom enumerator", UITypeName="FullyQualifiedTypeName,AssemblyName,Version=1.00.000.00,Culture=Neutral,PublicKeyToken=<publickeytoken>")]
public class MyEnumerator : ForEachEnumerator
{
//Insert code here.
}
}
Een aangepaste enumerator bouwen, uitrollen en debuggen
De stappen voor het bouwen, uitrollen en debuggen van een aangepaste e-numerator voor elke enumerator in Integration Services lijken sterk op de stappen die nodig zijn voor andere soorten aangepaste objecten. Voor meer informatie, zie Bouwen, Uitrollen en Debuggen van Aangepaste Objecten.