共用方式為


建立自訂 Foreach 列舉值

建立自訂 Foreach 列舉值所牽涉的步驟類似於為 Integration Services 建立任何其他自訂物件的步驟:

  • 建立繼承自基底類別的新類別。對於 Foreach 列舉值而言,基底類別是 ForEachEnumerator

  • 將可識別物件類型的屬性套用至此類別。對於 Foreach 列舉值而言,此屬性是 DtsForEachEnumeratorAttribute

  • 覆寫基底類別之方法與屬性的實作。對於 Foreach 列舉值而言,最重要的是 GetEnumerator 方法。

  • (選擇性) 開發自訂使用者介面。對於 Foreach 列舉值而言,這需要實作 IDTSForEachEnumeratorUI 介面的類別。

自訂列舉值是由 ForEachLoop 容器所裝載。在執行階段,ForEachLoop 容器會呼叫自訂列舉值的 GetEnumerator 方法。自訂列舉值會傳回可實作 IEnumerable 介面的物件,例如 ArrayList。然後 ForEachLoop 會反覆查看集合中的每一個元素、透過使用者定義的變數將目前元素的值提供給控制流程,然後在容器內執行此控制流程。

如需自訂列舉值的工作範例,請參閱 Codeplex 網站上的 Integration Services 範例 (英文)。

自訂 ForEach 列舉值使用者入門

建立專案和類別

因為所有的 Managed Foreach 列舉值都是從 ForEachEnumerator 基底類別衍生,所以建立自訂 Foreach 列舉值的第一個步驟是以慣用的 Managed 程式語言建立類別庫專案,並建立繼承自此基底類別的類別。在此衍生的類別中,您將覆寫基底類別的方法與屬性,以實作自訂功能。

在相同的方案中,為自訂使用者介面建立另一個類別庫專案。建議您針對使用者介面使用不同的組件以便能輕鬆地部署,因為它允許您獨立地更新和重新部署 Foreach 列舉值或是其使用者介面。

透過使用強式名稱金鑰檔,將兩個專案都設定成可簽署將在建立時期產生的組件。

套用 DtsForEachEnumerator 屬性

DtsForEachEnumeratorAttribute 屬性套用至您已建立的類別,以便將它識別為Foreach 列舉值。此屬性會提供設計階段資訊,例如 Foreach 列舉值的名稱和描述。Name 屬性會出現在 [Foreach 迴圈編輯器] 對話方塊內 [集合] 索引標籤上的可用列舉值下拉式清單內。

使用 UITypeName 屬性將 Foreach 列舉值連結至其自訂使用者介面。若要取得此屬性所需的公開金鑰 Token,您可以使用 sn.exe -t,從想要用以簽署使用者介面組件的金鑰組檔案 (.snk) 顯示公開金鑰 Token。

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

建立、部署和偵錯自訂列舉值

在 Integration Services 中建立、部署和偵錯自訂 Foreach 列舉值的步驟,非常類似於其他類型的自訂物件所需的步驟。如需詳細資訊,請參閱<建立、部署和偵錯自訂物件>。

Integration Services 圖示 (小) 掌握 Integration Services 的最新狀態

若要取得 Microsoft 的最新下載、文件、範例和影片以及社群中的選定解決方案,請瀏覽 MSDN 或 TechNet 上的 Integration Services 頁面:

若要得到這些更新的自動通知,請訂閱該頁面上所提供的 RSS 摘要。