Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Środowisko SSIS Integration Runtime w usłudze Azure Data Factory
Kroki związane z tworzeniem niestandardowego enumeratora dla Integracji są podobne do kroków tworzenia dowolnego innego niestandardowego obiektu dla Integration Services:
Stwórz nową klasę, która dziedziczy po klasie bazowej. Dla enumeratora foreach klasa bazowa to ForEachEnumerator.
Przypisz atrybut identyfikujący typ obiektu do klasy. Dla enumeratora foreach atrybut to .DtsForEachEnumeratorAttribute
Nadpisuj implementację metod i właściwości klasy bazowej. Dla renumeratora foreach najważniejsza jest metoda GetEnumerator .
Opcjonalnie warto opracować niestandardowy interfejs użytkownika. Dla enumeratora foreach wymaga to klasy implementującej interfejs.IDTSForEachEnumeratorUI
Własny enumerator jest hostowany przez kontener.ForEachLoop W czasie ForEachLoop działania kontener wywołuje metodę GetEnumerator niestandardowego enumeratora. Niestandardowy enumerator zwraca obiekt implementujący interfejs IEnumerable , taki jak ArrayList. Następnie iteruje ForEachLoop każdy element w kolekcji, przekazuje wartość bieżącego elementu do przepływu sterowania przez zmienną zdefiniowaną przez użytkownika i wykonuje przepływ sterowania w kontenerze.
Zaczynam z niestandardowym formularzem dla każdego ankietera
Tworzenie projektów i zajęć
Ponieważ wszystkie zarządzane enumeratory foreach pochodzą z ForEachEnumerator klasy bazowej, pierwszym krokiem przy tworzeniu niestandardowego enumeratora dla enumeratora jest stworzenie projektu biblioteki klas w preferowanym języku zarządzanego programowania i stworzenie klasy dziedziczącej z klasy bazowej. W tej klasie pochodnej nadpisujesz metody i właściwości klasy bazowej, aby zaimplementować własną funkcjonalność.
W tym samym rozwiązaniu stwórz projekt biblioteki drugiej klasy dla niestandardowego interfejsu użytkownika. Zaleca się osobny asembler interfejsu użytkownika dla ułatwienia wdrożenia, ponieważ pozwala on na niezależną aktualizację i ponowne wdrożenie enumeratora foreach lub jego interfejsu użytkownika.
Konfiguruj oba projekty tak, aby podpisywały asemble, które będą generowane podczas budowania, używając pliku klucza o silnej nazwie.
Zastosowanie atrybutu DtsForEachEnumerator
Zastosuj DtsForEachEnumeratorAttribute atrybut do utworzonej przez Ciebie klasy, aby zidentyfikować ją jako enumeratora foreach. Ten atrybut dostarcza informacji z czasu projektowania, takich jak nazwa i opis enumeratora foreach. Właściwość Nazwa pojawia się na rozwijanej liście dostępnych enumeratorów na zakładce Kolekcja w oknie dialogowym Foreach Loop Editor .
Użyj tej UITypeName właściwości, aby połączyć enumeratora foreach z jego niestandardowym interfejsem użytkownika. Aby uzyskać token klucza publicznego wymagany dla tej właściwości, możesz użyć sn.exe -t , aby wyświetlić token klucza publicznego z pliku key pair (.snk), którego zamierzasz użyć do podpisania zespołu interfejsu użytkownika.
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.
}
}
Budowanie, wdrażanie i debugowanie niestandardowego enumeratora
Kroki budowania, wdrażania i debugowania niestandardowego enumeratora foreach w Integration Services są bardzo podobne do tych wymaganych dla innych typów niestandardowych obiektów. Więcej informacji można znaleźć w sekcji Budowanie, wdrażanie i debugowanie niestandardowych obiektów.