Özel bir Foreach Numaralandırıcı oluşturma

Özel bir foreach numaralayıcı oluşturmak ilgili adımlar için özel nesnesi oluşturmak için adımları benzer Integration Services:

  • Temel sınıftan kalıtımla alan yeni bir sınıf oluşturmak. Bir foreach numaralayıcı için taban sınıftır ForEachEnumerator.

  • Geçerli nesne sınıfı türünü tanımlayan öznitelik. Öznitelik için bir foreach numaralayıcı olur DtsForEachEnumeratorAttribute.

  • Uygulanması temel sınıfın yöntemlerini ve özelliklerini geçersiz kılar. Bir foreach numaralayıcı için en önemli olan GetEnumeratoryöntemi.

  • Isteğe bağlı olarak, özel bir kullanıcı arabirimi geliştirmek. Bir foreach Numaralandırıcı, bu uygulayan bir sınıf gerektirir IDTSForEachEnumeratorUIarabirimi.

Özel numaralayıcı tarafından barındırılan ForEachLoopkap. Çalışma zamanında ForEachLoopkonteyner aramalar GetEnumeratoryöntemi özel numaralayıcı. Özel numaralayıcı uygulayan bir nesne döner IEnumerablearabirimi, gibi bir ArrayList. ForEachLoopSonra koleksiyonundaki her öğe üzerinde dolaşır, kullanıcı tanımlı bir değişken ile denetimi akışı için geçerli öğe değeri sağlar ve kapsayıcı denetimi akışı yürütür.

Özel numaralayıcı çalışma örneği için bkz: ForEachDirectory Sample.

Özel bir ForEach Numaralandırıcı ile Başlarken

Projeler ve sınıflar oluşturma

Çünkü tüm yönetilen foreach numaralandırıcıları elde ForEachEnumeratortemel sınıf, tercih ettiğiniz yönetilen programlama dili bir sınıf kitaplığı Projesi oluşturup, temel sınıfa devralan bir sınıf oluşturmak için özel bir foreach numaralayıcı oluşturduğunuzda ilk adım olduğunu Bu türetilmiş sınıf yöntemleri ve özellikleri, özel işlevselliğini uygulamak için temel sınıf geçersiz kılar.

Aynı çözümü, bir ikinci sınıf kitaplığı projesi için özel kullanıcı arabirimi oluşturmak. Çünkü foreach numaralayıcı veya kullanıcı arabirimi bağımsız olarak dağıtmanız ve güncelleştirmek sağlar kullanıcı arabirimi için ayrı bir kurul dağıtım kolaylığı için önerilir.

Kesin ad anahtar dosyası kullanarak inşa anda oluşturulacak derlemeler imzalamak için hem proje yapılandırın.

DtsForEachEnumerator özniteliği uygulanıyor

Uygulama DtsForEachEnumeratorAttributeözniteliği için bir foreach Numaralandırıcı tanımlamak üzere oluşturduğunuz sınıf. Bu öznitelik, ad ve açıklama foreach numaralayıcı gibi tasarım zamanı hakkında bilgi sağlar. NameÖzelliği üzerinde kullanılabilir numaralandırıcıları aşağı açılan listesinde görünen koleksiyonu sekmesini Foreach döngü Düzenleyicisi'ni iletişim kutusu.

Kullanım UITypeNameözelliği özel kullanıcı arabirimi için foreach numaralayıcı bağlamak. Bu özellik için size bir kullanımı gerekli olan ortak anahtar belirteci edinmek için sn.exe -tortak anahtar belirteci kullanıcı arabirimi derleme imzalamak için kullanmak istediğiniz anahtar çifti (.snk) dosyasından görüntülemek için.

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

Oluşturma, dağıtma ve hata ayıklama özel bir Numaralandırıcı

Oluşturma, dağıtma ve hata ayıklama özel bir foreach numaralayıcı içinde adımlarını Integration Servicesçok özel nesneler diğer türleri için gereken adımları benzer. Daha fazla bilgi için, bkz. Oluşturma, dağıtma ve özel nesneler hata ayıklama.

Integration Services simgesi (küçük) Integration Services ile güncel kalın

En son karşıdan yüklemeler, makaleler, örnekler ve Microsoft video yanı sıra topluluk seçili çözümleri için ziyaret Integration ServicesMSDN sayfası:


Bu güncelleştirmelerle ilgili otomatik bildirim almak için, sayfadaki RSS akışlarına abone olun.

Ayrıca bkz.

Görevler

Özel bir Foreach Numaralandırıcı kodlama

Kullanıcı arabirimi için özel bir ForEach Numaralandırıcı geliştirme