次の方法で共有


TaskHost クラス

単一のタスクをカプセル化するコンテナを提供します。SSIS デザイナでは、TaskHost が個別に構成されません。このコンテナによってカプセル化されたタスクのプロパティを設定する際に構成されます。

名前空間:  Microsoft.SqlServer.Dts.Runtime
アセンブリ:  Microsoft.SqlServer.ManagedDTS (Microsoft.SqlServer.ManagedDTS.dll)

構文

'宣言
Public NotInheritable Class TaskHost _
    Inherits EventsProvider _
    Implements IDTSObjectHost, IDTSPropertiesProvider, IDTSPackagePath
'使用
Dim instance As TaskHost
public sealed class TaskHost : EventsProvider, 
    IDTSObjectHost, IDTSPropertiesProvider, IDTSPackagePath
public ref class TaskHost sealed : public EventsProvider, 
    IDTSObjectHost, IDTSPropertiesProvider, IDTSPackagePath
[<SealedAttribute>]
type TaskHost =  
    class
        inherit EventsProvider
        interface IDTSObjectHost
        interface IDTSPropertiesProvider
        interface IDTSPackagePath
    end
public final class TaskHost extends EventsProvider implements IDTSObjectHost, IDTSPropertiesProvider, IDTSPackagePath

説明

Integration Services は、パッケージの作成用に複数の異なる種類のコンテナを提供しています。こうしたコンテナの 1 つとして、TaskHost があります。TaskHost コンテナは単一のタスクにサービスを提供します。グラフィカル デザイナ ツールボックスには、このコンテナに対応するアイテムがありません。TaskHost オブジェクトはタスクのラッパー オブジェクトであり、タスク作成中に透過的に作成されます。このオブジェクトは、Add メソッドから Executable オブジェクトとして返され、TaskHost としてキャストされます。最後に、タスクのインスタンスが InnerObject プロパティを介してアクセスされます。すべての SSIS コンテナの詳細については、「Integration Services コンテナ」を参照してください。

使用例

次のコード例は、空のパッケージの作成を示しています。2 つのタスクをパッケージに追加し、TaskHost クラスにキャストします。これは、InnerObject メソッドなど、TaskHost のメソッドやプロパティを、タスクの種類にかかわらず、いずれかのタスクで使用できるようにするためです。

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Tasks.BulkInsertTask;
using Microsoft.SqlServer.Dts.Tasks.FileSystemTask;

namespace Microsoft.SqlServer.SSIS.Samples
{
    class Program
    {
        static void Main(string[] args)
        {
            Package p = new Package();
            // Add a File System task to the package.
            Executable exec1 = p.Executables.Add("STOCK:FileSystemTask");
            TaskHost thFileSystemTask = exec1 as TaskHost;
            // Add a Bulk Insert task to the package.
            Executable exec2 = p.Executables.Add("STOCK:BulkInsertTask");
            TaskHost thBulkInsertTask = exec2 as TaskHost;

            // Iterate through the package Executables collection.
            Executables pExecs = p.Executables;
            foreach (Executable pExec in pExecs)
            {
                TaskHost taskHost = (TaskHost)pExec;
                Console.WriteLine("Type {0}", taskHost.InnerObject.ToString());
            }
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Tasks.BulkInsertTask
Imports Microsoft.SqlServer.Dts.Tasks.FileSystemTask
 
Namespace Microsoft.SqlServer.SSIS.Samples
    Class Program
        Shared  Sub Main(ByVal args() As String)
            Dim p As Package =  New Package() 
            ' Add a File System task to the package.
            Dim exec1 As Executable =  p.Executables.Add("STOCK:FileSystemTask") 
            Dim thFileSystemTask As TaskHost =  exec1 as TaskHost 
            ' Add a Bulk Insert task to the package.
            Dim exec2 As Executable =  p.Executables.Add("STOCK:BulkInsertTask") 
            Dim thBulkInsertTask As TaskHost =  exec2 as TaskHost 
 
            ' Iterate through the package Executables collection.
            Dim pExecs As Executables =  p.Executables 
            Dim pExec As Executable
            For Each pExec In pExecs
                Dim taskHost As TaskHost = CType(pExec, TaskHost)
                Console.WriteLine("Type {0}", taskHost.InnerObject.ToString())
            Next
        End Sub
    End Class
End Namespace

サンプルの出力 :

Type Microsoft.SqlServer.Dts.Tasks.FileSystemTask.FileSystemTask

Type Microsoft.SqlServer.Dts.Tasks.BulkInsertTask.BulkInsertTask

スレッド セーフ

この型の public static (Visual Basic では Shared) のメンバーはすべて、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。