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
継承階層
System. . :: . .Object
Microsoft.SqlServer.Dts.Runtime. . :: . .DtsObject
Microsoft.SqlServer.Dts.Runtime. . :: . .Executable
Microsoft.SqlServer.Dts.Runtime. . :: . .DtsContainer
Microsoft.SqlServer.Dts.Runtime. . :: . .EventsProvider
Microsoft.SqlServer.Dts.Runtime..::..TaskHost
スレッド セーフ
この型の public static (Visual Basic では Shared) のメンバーはすべて、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。