다음을 통해 공유


Executables.Add(String) 메서드

정의

Executables 컬렉션에 새 컨테이너 또는 태스크 개체를 추가합니다.

public:
 Microsoft::SqlServer::Dts::Runtime::Executable ^ Add(System::String ^ moniker);
public Microsoft.SqlServer.Dts.Runtime.Executable Add (string moniker);
member this.Add : string -> Microsoft.SqlServer.Dts.Runtime.Executable
Public Function Add (moniker As String) As Executable

매개 변수

moniker
String

실행할 모니커입니다.

반환

TaskHost 새로 만든 Executable 개체의 개체입니다. 속성을 설정하거나 새 개체에서 메서드를 호출하려면 다음 두 가지 옵션이 PropertiesTaskHost있습니다. 예를 들어 개체에서 속성을 얻으려면 th를 사용합니다. Properties["propertyname"]. GetValue(th)) 속성을 설정하려면 th를 사용합니다. Properties["propertyname"]. SetValue(th, <value>);. InnerObject 작업 클래스로 TaskHost 캐스팅합니다. 예를 들어 대량 삽입 태스크를 패키지에 BulkInsertTask 추가한 후 패키지로 Executable 캐스팅한 후로 캐스팅 TaskHost하려면 BulkInsertTask myTask = th를 사용합니다. InnerObject를 BulkInsertTask;로 지정합니다. TaskHost 태스크별 클래스로 캐스팅하지 않고 코드에서 클래스를 사용하면 다음과 같은 이점이 있습니다. 공급자는 TaskHostProperties 코드의 어셈블리에 대한 참조가 필요하지 않습니다. 컴파일 시 태스크 이름을 몰라도 되므로 모든 태스크에 대해 작동하는 일반 루틴을 코딩할 수 있습니다. 이러한 일반 루틴을 사용하면 사용자가 직접 해당 메서드에 태스크 이름을 전달할 수 있고 메서드 코드를 임의의 태스크에 대해 사용할 수 있습니다. 이 방법은 테스트 코드를 작성하는 데 적합합니다. 작업별 클래스로 TaskHost 캐스팅하면 다음과 같은 이점이 있습니다. Visual Studio 프로젝트는 명령문 완성(IntelliSense)을 제공합니다. 코드가 보다 빨리 실행될 수 있습니다. 초기 바인딩된 개체를 생성합니다. 초기 바인딩 및 지연 바인딩에 대한 자세한 내용은 Visual Basic Language Concepts의 초기 바인딩 및 지연 바인딩을 참조하세요. 필요에 따라 개체를 해당 작업별 클래스로 캐스팅할 수도 있고 그렇지 않을 수도 있습니다.

예제

다음 코드 예제에서는 대량 삽입 태스크를 패키지에 실행 파일로 추가합니다.

using System;  
using System.Collections.Generic;  
using System.Text;  
using Microsoft.SqlServer.Dts.Runtime;  

namespace Executables_API  
{  
        class Program  
        {  
        static void Main(string[] args)  
        {  
            Package pkg = new Package();  
            Executable exec = pkg.Executables.Add("STOCK:BulkInsertTask");  

            // Obtain the collection.  
            Executables pgkExecs = pkg.Executables;  
            foreach (Executable eachExec in pgkExecs)  
            {  
                TaskHost th = exec as TaskHost;  
                Console.WriteLine("Executable creation name is: {0}", th.CreationName);  
            }  
                        // Show that at least one executable exists.  
            if (pgkExecs.Contains(0))  
            {  
                Console.WriteLine("Contains returned true");  
            }  
            else  
            {  
                Console.WriteLine("Contains returned false");  
            }  
        }  
    }  
}  
Imports System  
Imports System.Collections.Generic  
Imports System.Text  
Imports Microsoft.SqlServer.Dts.Runtime  

Namespace Executables_API  
        Class Program  
        Shared  Sub Main(ByVal args() As String)  
            Dim pkg As Package =  New Package()   
            Dim exec As Executable =  pkg.Executables.Add("STOCK:BulkInsertTask")   

            ' Obtain the collection.  
            Dim pgkExecs As Executables =  pkg.Executables   
            Dim eachExec As Executable  
            For Each eachExec In pgkExecs  
                Dim th As TaskHost =  exec as TaskHost   
                Console.WriteLine("Executable creation name is: {0}", th.CreationName)  
            Next  
                        ' Show that at least one executable exists.  
            If pgkExecs.Contains(0) Then  
                Console.WriteLine("Contains returned true")  
            Else   
                Console.WriteLine("Contains returned false")  
            End If  
        End Sub  
        End Class  
End Namespace  

샘플 출력:

Executable creation name is: Microsoft.SqlServer.Dts.Tasks.BulkInsertTask.BulkInsertTask, Microsoft.SqlServer.BulkInsertTask, Version=10.0.000.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91

Contains returned true

설명

새 컨테이너 또는 작업을 만들고 컬렉션에 추가 Executables 하려는 경우에 사용합니다Add. 메서드 매개 변수는 CLSID, PROGID, STOCK 모니커 또는 CreationName 개체의 TaskInfo 속성일 수 있는 문자열입니다. 메서드는 새로 만든 작업의 개체를 개체로 Executable 반환 TaskHost 합니다. 자세한 내용은 제어 흐름에서 태스크 또는 컨테이너 추가 또는 삭제를 참조하세요.

적용 대상