LogProviderEnumerator.Current Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient l'élément LogProvider actuel dans la collection.
public:
property Microsoft::SqlServer::Dts::Runtime::LogProvider ^ Current { Microsoft::SqlServer::Dts::Runtime::LogProvider ^ get(); };
public Microsoft.SqlServer.Dts.Runtime.LogProvider Current { get; }
member this.Current : Microsoft.SqlServer.Dts.Runtime.LogProvider
Public ReadOnly Property Current As LogProvider
Valeur de propriété
Élément LogProvider actuel dans la collection.
Exemples
L’exemple de code suivant ajoute et supprime les fournisseurs de journaux pour le package, en plus de créer un énumérateur à l’aide de la GetEnumerator méthode, puis utilise les méthodes et MoveNext
lesCurrent méthodes pour parcourir la collection.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
namespace Microsoft.SqlServer.SSIS.Samples
{
class Program
{
static void Main(string[] args)
{
Package pkg = new Package();
// Make several log providers available to the package.
LogProvider log1 = pkg.LogProviders.Add("DTS.LogProviderEventLog.1");
LogProvider log2 = pkg.LogProviders.Add("DTS.LogProviderSQLProfiler.1");
LogProvider log3 = pkg.LogProviders.Add("DTS.LogProviderTextFile.1");
LogProvider log4 = pkg.LogProviders.Add("DTS.LogProviderTextFile.1");
// Show the log providers available to the package.
Console.WriteLine("Log providers available in the Package:");
LogProviders logs = pkg.LogProviders;
foreach (LogProvider lp in logs)
Console.WriteLine(lp.CreationName);
// Pick a log provider for the package.
pkg.LoggingOptions.SelectedLogProviders.Add(log4);
pkg.LoggingOptions.SelectedLogProviders.Add(log1);
SelectedLogProviders provs = pkg.LoggingOptions.SelectedLogProviders;
Console.WriteLine();
Console.WriteLine("Selected Log Providers for Package: {0}", provs.Count);
foreach (LogProvider lp in provs)
Console.WriteLine(lp.CreationName);
pkg.LoggingOptions.SelectedLogProviders.Remove(0);
Console.WriteLine();
Console.WriteLine("Count after one has been removed {0}", provs.Count);
// Test both the indexer and Contains method.
if (logs.Contains(0))
Console.WriteLine("Index zero in collection contains: {0}", logs[0].CreationName);
else
throw new Exception();
// Show the use of the GetEnumerator.
LogProviderEnumerator myEnum = pkg.LogProviders.GetEnumerator();
Console.WriteLine("The collection contains the following values:");
while ((myEnum.MoveNext()) && (myEnum.Current != null))
Console.WriteLine("{0}", myEnum.Current.Name);
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
Namespace Microsoft.SqlServer.SSIS.Samples
Class Program
Shared Sub Main(ByVal args() As String)
Dim pkg As Package = New Package()
' Make several log providers available to the package.
Dim log1 As LogProvider = pkg.LogProviders.Add("DTS.LogProviderEventLog.1")
Dim log2 As LogProvider = pkg.LogProviders.Add("DTS.LogProviderSQLProfiler.1")
Dim log3 As LogProvider = pkg.LogProviders.Add("DTS.LogProviderTextFile.1")
Dim log4 As LogProvider = pkg.LogProviders.Add("DTS.LogProviderTextFile.1")
' Show the log providers available to the package.
Console.WriteLine("Log providers available in the Package:")
Dim logs As LogProviders = pkg.LogProviders
Dim lp As LogProvider
For Each lp In logs
Console.WriteLine(lp.CreationName)
Next
' Pick a log provider for the package.
pkg.LoggingOptions.SelectedLogProviders.Add(log4)
pkg.LoggingOptions.SelectedLogProviders.Add(log1)
Dim provs As SelectedLogProviders = pkg.LoggingOptions.SelectedLogProviders
Console.WriteLine()
Console.WriteLine("Selected Log Providers for Package: {0}", provs.Count)
Dim lp As LogProvider
For Each lp In provs
Console.WriteLine(lp.CreationName)
Next
pkg.LoggingOptions.SelectedLogProviders.Remove(0)
Console.WriteLine()
Console.WriteLine("Count after one has been removed {0}", provs.Count)
' Test both the indexer and Contains method.
If logs.Contains(0) Then
Console.WriteLine("Index zero in collection contains: {0}", logs(0).CreationName)
Else
Throw New Exception()
End If
' Show the use of the GetEnumerator.
Dim myEnum As LogProviderEnumerator = pkg.LogProviders.GetEnumerator()
Console.WriteLine("The collection contains the following values:")
While (myEnum.MoveNext()) &&(myEnum.Current <> Nothing)
Console.WriteLine("{0}", myEnum.Current.Name)
End While
End Sub
End Class
End Namespace
Exemple de sortie :
Fournisseurs de journaux disponibles dans le package :
DTS.LogProviderTextFile.1
DTS.LogProviderSQLProfiler.1
DTS.LogProviderEventLog.1
DTS.LogProviderTextFile.1
Fournisseurs de journaux sélectionnés pour le package : 2
DTS.LogProviderTextFile.1
DTS.LogProviderEventLog.1
Nombre après la suppression de 1
Index zéro dans la collection contient : DTS. LogProviderTextFile.1
La collection contient les valeurs suivantes :
{9A4FD6D3-7DE2-43AD-8B02-CE9B02E7504B}
{AB1C156F-8018-4063-A1A5-48E122CE6FFD}
{B8E93B36-36FE-4E65-9814-9752915E9E15}
{E586A867-86EC-4901-8F5A-C945D469C46}
Remarques
Une fois qu’un énumérateur est créé ou après un appel à la méthode Reset , la méthode MoveNext doit être appelée pour avancer l’énumérateur vers le premier élément de la collection avant que l’énumérateur puisse lire la valeur de la propriété Current ; sinon, Current n’est pas défini et lève une exception.
Current lève également une exception si le dernier appel à MoveNext retourné false
, qui indique la fin de la collection.
Current ne déplace pas la position de l’énumérateur et les appels consécutifs à Current retournent le même objet tant que MoveNext ou Reset n’est pas appelé.
Un énumérateur reste valide aussi longtemps que la collection demeure inchangée. Si des modifications sont apportées à la collection, comme l’ajout, la modification ou la suppression d’éléments, l’énumérateur est invalidé et devient irrécupérable ; ainsi, l’appel suivant à MoveNext ou Reset lève une InvalidOperationException. Toutefois, si la collection est modifiée entre les appels à MoveNext et Current, Current retourne l’élément sur lequel il est défini, même si l’énumérateur a été invalidé.