LogProviderEnumerator.Current プロパティ

定義

コレクション内の現在の LogProvider 要素を取得します。

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

プロパティ値

LogProvider

コレクション内にある現在の LogProvider 要素です。

次のコード例では、メソッドを使用 GetEnumerator して列挙子を作成するだけでなく、パッケージのログ プロバイダーを追加および削除し、次にCurrent .メソッドを MoveNext 使用してコレクション内を移動します。

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  

サンプル出力:

Log providers available in the Package:

DTS.LogProviderTextFile.1

DTS.LogProviderSQLProfiler.1

DTS.LogProviderEventLog.1

DTS.LogProviderTextFile.1

Selected Log Providers for Package: 2

DTS.LogProviderTextFile.1

DTS.LogProviderEventLog.1

Count after one has been removed 1

コレクション内のインデックス 0 に DTS が含まれています。LogProviderTextFile.1

The collection contains the following values:

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

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

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

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

注釈

列挙子が作成された後、または Reset メソッドの呼び出し後に、 MoveNext メソッドを呼び出して、列挙子が Current プロパティの値を読み取る前に、列挙子をコレクションの最初の要素に進める必要があります。それ以外の場合、 Current は未定義であり、例外をスローします。

コレクション の末尾を示す MoveNext の最後の呼び出しが返された false場合も、Current は例外をスローします。

Current は列挙子の位置を移動せず、 Current を連続して呼び出すと 、MoveNext または Reset が呼び出されるまで同じオブジェクトが返されます。

列挙子は、コレクションが変更されない限り有効です。 要素の追加、変更、削除など、コレクションに変更が加えられた場合、列挙子は無効になり、回復不能になります。したがって、 MoveNext または Reset の次の呼び出しは InvalidOperationException をスローします。 ただし、 MoveNextCurrent の呼び出しの間でコレクションが変更された場合、列挙子が無効になっている場合でも、 Current は設定されている要素を返します。

適用対象