次の方法で共有


TaskHost.InnerObject Property

TaskHost がホストするタスク インスタンスへのアクセスに使用されるメソッドです。

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

構文

'宣言
<BrowsableAttribute(False)> _
Public ReadOnly Property InnerObject As Object
[BrowsableAttribute(false)] 
public Object InnerObject { get; }
[BrowsableAttribute(false)] 
public:
virtual property Object^ InnerObject {
    Object^ get () sealed;
}
/** @property */
public final Object get_InnerObject ()
public final function get InnerObject () : Object

プロパティ値

TaskHost に含まれるオブジェクトです。

解説

TaskHostInnerObject をタスク タイプとしてキャストすることにより、特定のタスク インスタンスを取得できます。次に、このタスク オブジェクトを使用して、タスクのメソッドやプロパティに直接アクセスします。

使用例

次のコード例では、FileSystemTaskBulkInsertTask をパッケージに追加し、TaskHostInnerObject メソッドを使用して、ループ内で取得したタスクのタスク タイプを決定します。

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 thFileSystemTask1 = exec1 as TaskHost;
            // Add a Bulk Insert task to the package.
            Executable exec2 = p.Executables.Add("STOCK:BulkInsertTask");
            TaskHost thFileSystemTask2 = 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());

                if (taskHost.InnerObject is Microsoft.SqlServer.Dts.Tasks.FileSystemTask.FileSystemTask)
                {
                    // Do work here.
                }
                else if (taskHost.InnerObject is Microsoft.SqlServer.Dts.Tasks.BulkInsertTask.BulkInsertTask)
                {
                    // Do work here.
                }
                // Continue to add statements to check InnerObject, if desired.
            }
        }
    }
}
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 thFileSystemTask1 As TaskHost =  exec1 as TaskHost 
            ' Add a Bulk Insert task to the package.
            Dim exec2 As Executable =  p.Executables.Add("STOCK:BulkInsertTask") 
            Dim thFileSystemTask2 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())
 
                If TypeOf taskHost.InnerObject Is Microsoft.SqlServer.Dts.Tasks.FileSystemTask.FileSystemTask Then
                    ' Do work here.
                Else If TypeOf taskHost.InnerObject Is Microsoft.SqlServer.Dts.Tasks.BulkInsertTask.BulkInsertTask Then 
                    ' Do work here.
                End If
                ' Continue to add statements to check InnerObject, if desired.
            Next
        End Sub
    End Class
End Namespace

サンプルの出力 :

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

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

スレッド セーフ

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

プラットフォーム

開発プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

対象プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

参照

関連項目

TaskHost Class
TaskHost Members
Microsoft.SqlServer.Dts.Runtime Namespace