Udostępnij przez


Właściwość ExecutableEnumerator.Current

Pobiera bieżący element kolekcja.

Przestrzeń nazw:  Microsoft.SqlServer.Dts.Runtime
Zestaw:  Microsoft.SqlServer.ManagedDTS (w Microsoft.SqlServer.ManagedDTS.dll)

Składnia

'Deklaracja
Public ReadOnly Property Current As Executable
    Get
'Użycie
Dim instance As ExecutableEnumerator
Dim value As Executable

value = instance.Current
public Executable Current { get; }
public:
property Executable^ Current {
    Executable^ get ();
}
member Current : Executable
function get Current () : Executable

Wartość właściwości

Typ: Microsoft.SqlServer.Dts.Runtime.Executable
Bieżący element kolekcja.

Uwagi

Po utworzeniu moduł wyliczający lub po wywołaniu zresetować metody, MoveNext metoda musi zostać wywołana, aby przejść do pierwszego elementu kolekcja modułu wyliczającego, zanim modułu wyliczającego można odczytać wartości Current właściwość; w przeciwnym razie Current jest niezdefiniowany i zgłasza wyjątek.

Currentrównież zgłasza wyjątek, jeśli wywołanie ostatniego MoveNext zwracane false, które wskazuje koniec kolekcja.

Currentnie przenosi pozycja modułu wyliczającego i kolejne wywołania Current zwracają ten sam obiekt, aż do MoveNext lub zresetować jest wywoływana.

Moduł wyliczający zachowuje ważność tak długo, jak długo kolekcja pozostaje niezmieniony.Jeśli zmiany zostaną wprowadzone do kolekcja, takie jak dodawanie, modyfikowanie lub usuwanie elementów, moduł wyliczający jest unieważniona i staje się odzyskane; Dlatego kolejne wywołanie MoveNext lub zresetować zgłasza wyjątek.Jednak jeśli od modyfikacji kolekcja między wywołaniami MoveNext i Current, Current zwraca element, który jest zestaw , nawet jeśli moduł wyliczający został unieważniony.

Przykłady

Poniższy przykład kodu dodaje luzem Wstaw zadanie do pakiet, pobiera Executables kolekcja, tworzy moduł wyliczający i pokazuje nazwę za pomocą TaskHost.

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;

namespace Executables_API
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create the package and add the BulkInsertTask.
            Package pkg = new Package();
            Executable exec = pkg.Executables.Add("STOCK:BulkInsertTask");

            // Obtain the collection.
            Executables pgkExecs = pkg.Executables;

            //Create the Enumerator.
            ExecutableEnumerator myEnumerator = pgkExecs.GetEnumerator();
            Console.WriteLine("The collection contains the following values:");
            int i = 0;
            Executable myExec;
            TaskHost myTH;
            while ((myEnumerator.MoveNext()) && (myEnumerator.Current != null))
            {
                myExec = (Executable)myEnumerator.Current;
                myTH = (TaskHost)myExec;
                Console.WriteLine("[{0}] {1}", i++, myTH.Name);
            }
            // Reset puts the index pointer before the beginning.
            // Do not retrieve from the collection until MoveNext is called.
            myEnumerator.Reset();
            myEnumerator.MoveNext();
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
 
Namespace Executables_API
    Class Program
        Shared  Sub Main(ByVal args() As String)
            ' Create the package and add the BulkInsertTask.
            Dim pkg As Package =  New Package() 
            Dim exec As Executable =  pkg.Executables.Add("STOCK:BulkInsertTask") 
 
            ' Obtain the collection.
            Dim pgkExecs As Executables =  pkg.Executables 
 
            'Create the Enumerator.
            Dim myEnumerator As ExecutableEnumerator =  pgkExecs.GetEnumerator() 
            Console.WriteLine("The collection contains the following values:")
            Dim i As Integer =  0 
            Dim myExec As Executable
            Dim myTH As TaskHost
            While (myEnumerator.MoveNext()) &&(myEnumerator.Current <> Nothing)
                myExec = CType(myEnumerator.Current, Executable)
                myTH = CType(myExec, TaskHost)
                Console.WriteLine("[{0}] {1}",i = Console.WriteLine("[{0}] {1}",i + 1
            End While
            ' Reset puts the index pointer before the beginning.
            ' Do not retrieve from the collection until MoveNext is called.
            myEnumerator.Reset()
            myEnumerator.MoveNext()
         End Sub
    End Class
End Namespace

Przykładowe dane wyjściowe:

Kolekcja zawiera następujące wartości:

[0] {C435F0C7-97E8-4DCC-A0FF-C6C805D9F64E}