ExecutableEnumerator.Current Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene l'elemento corrente nella raccolta.
public:
property Microsoft::SqlServer::Dts::Runtime::Executable ^ Current { Microsoft::SqlServer::Dts::Runtime::Executable ^ get(); };
public Microsoft.SqlServer.Dts.Runtime.Executable Current { get; }
member this.Current : Microsoft.SqlServer.Dts.Runtime.Executable
Public ReadOnly Property Current As Executable
Valore della proprietà
Elemento corrente nella raccolta.
Esempio
Il seguente esempio di codice aggiunge un compito Bulk Insert al pacchetto, recupera la Executables collezione, crea un enumeratore e mostra il nome usando il TaskHostfile .
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
Output di esempio:
La collezione contiene i seguenti valori:
[0] {C435F0C7-97E8-4DCC-A0FF-C6C805D9F64E}
Commenti
Dopo la creazione di un enumeratore, o dopo una chiamata al Reset metodo, il MoveNext metodo deve essere chiamato per avanzare l'enumeratore al primo elemento della collezione prima che possa leggere il valore della Current proprietà; altrimenti, Current è indefinito e lancia un'eccezione.
Current genera anche un'eccezione se l'ultima chiamata a MoveNext restituita false, che indica la fine della raccolta.
Currentnon sposta la posizione dell'enumeratore e le chiamate consecutive per restituire lo stesso oggetto fino Current a MoveNext quando non viene chiamato o Reset .
Un enumeratore rimane valido finché la raccolta rimane invariata. Se vengono apportate modifiche alla collezione, come aggiungere, modificare o eliminare elementi, l'enumeratore viene invalidato e diventa irrecuperabile; quindi, la chiamata successiva a MoveNext o Reset lancia un'eccezione. Tuttavia, se la collezione viene modificata tra le chiamate a MoveNext e Current, Current restituisce l'elemento a cui è impostata, anche se l'enumeratore è stato invalidato.