Bagikan melalui


Membuat Enumerator Foreach Kustom

Berlaku untuk: SQL Server SSIS Integration Runtime di Azure Data Factory

Langkah-langkah yang terlibat dalam membuat enumerator foreach kustom mirip dengan langkah-langkah untuk membuat objek kustom lainnya untuk Layanan Integrasi:

  • Buat kelas baru yang mewarisi dari kelas dasar. Untuk enumerator foreach, kelas dasarnya adalah ForEachEnumerator.

  • Terapkan atribut yang mengidentifikasi jenis objek ke kelas . Untuk enumerator foreach, atributnya adalah DtsForEachEnumeratorAttribute.

  • Mengambil alih implementasi metode dan properti kelas dasar. Untuk enumerator foreach, yang paling penting adalah metode .GetEnumerator

  • Secara opsional, kembangkan antarmuka pengguna kustom. Untuk enumerator foreach, ini memerlukan kelas yang mengimplementasikan IDTSForEachEnumeratorUI antarmuka.

Enumerator kustom dihosting oleh ForEachLoop kontainer. Pada waktu proses, ForEachLoop kontainer memanggil GetEnumerator metode enumerator kustom. Enumerator kustom mengembalikan objek yang mengimplementasikan antarmuka IEnumerable , seperti ArrayList. Kemudian ForEachLoop melakukan iterasi pada setiap elemen dalam koleksi, memberikan nilai elemen saat ini ke alur kontrol melalui variabel yang ditentukan pengguna, dan menjalankan alur kontrol dalam kontainer.

Memulai Enumerator ForEach Kustom

Membuat Proyek dan Kelas

Karena semua enumerator foreach terkelola berasal dari ForEachEnumerator kelas dasar, langkah pertama saat Anda membuat enumerator foreach kustom adalah membuat proyek pustaka kelas dalam bahasa pemrograman terkelola pilihan Anda dan membuat kelas yang mewarisi dari kelas dasar. Dalam kelas turunan ini Anda akan mengambil alih metode dan properti kelas dasar untuk mengimplementasikan fungsionalitas kustom Anda.

Dalam solusi yang sama, buat proyek pustaka kelas kedua untuk antarmuka pengguna kustom. Rakitan terpisah untuk antarmuka pengguna direkomendasikan untuk kemudahan penyebaran karena memungkinkan Anda memperbarui dan menyebarkan ulang enumerator foreach atau antarmuka penggunanya secara independen.

Konfigurasikan kedua proyek untuk menandatangani rakitan yang akan dihasilkan pada waktu build dengan menggunakan file kunci nama yang kuat.

Menerapkan Atribut DtsForEachEnumerator

DtsForEachEnumeratorAttribute Terapkan atribut ke kelas yang telah Anda buat untuk mengidentifikasinya sebagai enumerator foreach. Atribut ini menyediakan informasi waktu desain seperti nama dan deskripsi enumerator foreach. Properti Nama muncul di daftar dropdown enumerator yang tersedia pada tab Koleksi dari kotak dialog Editor Perulangan Foreach.

UITypeName Gunakan properti untuk menautkan enumerator foreach ke antarmuka pengguna kustomnya. Untuk mendapatkan token kunci publik yang diperlukan untuk properti ini, Anda menggunakan sn.exe -t untuk menampilkan token kunci publik dari file pasangan kunci (.snk) yang ingin Anda gunakan untuk menandatangani rakitan antarmuka pengguna.

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.  
    }  
}  

Membangun, Menyebarkan, dan Men-debug Enumerator Kustom

Langkah-langkah untuk membangun, menyebarkan, dan men-debug enumerator foreach kustom di Integration Services sangat mirip dengan langkah-langkah yang diperlukan untuk jenis objek kustom lainnya. Untuk informasi selengkapnya, lihat Membangun, Menyebarkan, dan Men-debug Objek Kustom.

Lihat Juga

Pengodean Enumerator Foreach Kustom
Mengembangkan Antarmuka Pengguna untuk Enumerator ForEach Kustom