Bagikan melalui


LogProviderEnumerator.Current Properti

Definisi

Mendapatkan elemen saat ini LogProvider dalam koleksi.

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

Nilai Properti

Elemen saat ini LogProvider dalam koleksi.

Contoh

Contoh kode berikut menambahkan dan menghapus penyedia log untuk paket, selain membuat enumerator dengan menggunakan GetEnumerator metode , lalu menggunakan metodeCurrent dan MoveNext untuk menavigasi koleksi.

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  

Contoh Output:

Penyedia log tersedia dalam Paket:

Dts. LogProviderTextFile.1

Dts. LogProviderSQLProfiler.1

Dts. LogProviderEventLog.1

Dts. LogProviderTextFile.1

Penyedia Log yang Dipilih untuk Paket: 2

Dts. LogProviderTextFile.1

Dts. LogProviderEventLog.1

Hitung setelah satu dihapus 1

Indeks nol dalam koleksi berisi: DTS. LogProviderTextFile.1

Koleksi berisi nilai berikut:

{9A4FD6D3-7DE2-43AD-8B02-CE9B02E7504B}

{AB1C156F-8018-4063-A1A5-48E122CE6FFD}

{B8E93B36-36FE-4E65-9814-9752915E9E15}

{E586A867-86EC-4901-8F5A-C945D4469C46}

Keterangan

Setelah enumerator dibuat, atau setelah panggilan ke metode Reset , metode MoveNext harus dipanggil untuk memajukan enumerator ke elemen pertama koleksi sebelum enumerator dapat membaca nilai properti Saat Ini ; jika tidak, Saat ini tidak terdefinisi dan melempar pengecualian.

Saat ini juga melempar pengecualian jika panggilan terakhir ke MoveNext dikembalikan false, yang menunjukkan akhir koleksi.

Saat ini tidak memindahkan posisi enumerator, dan panggilan berturut-turut ke Saat ini mengembalikan objek yang sama sampai MoveNext atau Reset dipanggil.

Enumerator tetap valid selama koleksi tetap tidak berubah. Jika perubahan dilakukan pada koleksi, seperti menambahkan, memodifikasi, atau menghapus elemen, enumerator tidak valid dan menjadi tidak dapat dipulihkan; dengan demikian, panggilan berikutnya ke MoveNext atau Reset melempar InvalidOperationException. Namun, jika koleksi dimodifikasi antara panggilan ke MoveNext dan Current, Current mengembalikan elemen yang diatur ke, bahkan jika enumerator telah dibatalkan.

Berlaku untuk