LogProviderEnumerator.Current Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.