Share via


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 열거자를 만드는 것 외에도 패키지에 대한 로그 공급자를 추가 및 제거한 다음, 이 메서드와 MoveNext 메서드를 사용하여Current 컬렉션을 탐색합니다.

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  

샘플 출력:

패키지에서 사용할 수 있는 로그 공급자:

DTS.LogProviderTextFile.1

DTS.LogProviderSQLProfiler.1

DTS.LogProviderEventLog.1

DTS.LogProviderTextFile.1

선택한 패키지용 로그 공급자: 2

DTS.LogProviderTextFile.1

DTS.LogProviderEventLog.1

1이 제거된 후의 개수

컬렉션의 인덱스 0에는 DTS가 포함됩니다. LogProviderTextFile.1

컬렉션에는 다음 값이 포함됩니다.

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

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

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

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

설명

열거자를 만든 후 또는 Reset 메서드를 호출한 후 열거자가 Current 속성의 값을 읽기 전에 열거자를 컬렉션의 첫 번째 요소로 이동하려면 MoveNext 메서드를 호출해야 합니다. 그렇지 않으면 현재가 정의되지 않고 예외를 throw합니다.

또한 컬렉션 의 끝을 나타내는 MoveNext에 대한 마지막 호출이 반환 false된 경우에도 현재는 예외를 throw합니다.

Current 는 열거자의 위치를 이동하지 않으며 Current에 대한 연속 호출은 MoveNext 또는 Reset 이 호출될 때까지 동일한 개체를 반환합니다.

컬렉션이 변경되지 않고 그대로 유지되는 한 열거자는 유효한 상태로 유지됩니다. 요소 추가, 수정 또는 삭제와 같이 컬렉션이 변경되면 열거자가 무효화되고 복구할 수 없게 됩니다. 따라서 MoveNext 또는 Reset 에 대한 다음 호출은 InvalidOperationException을 throw합니다. 그러나 MoveNextCurrent에 대한 호출 간에 컬렉션이 수정되면 열거자가 무효화된 경우에도 현재 컬렉션이 설정된 요소를 반환합니다.

적용 대상