次の方法で共有


InnerObject プロパティ

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

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

構文

'宣言
<BrowsableAttribute(False)> _
Public ReadOnly Property InnerObject As Object
    Get
'使用
Dim instance As TaskHost
Dim value As Object

value = instance.InnerObject
[BrowsableAttribute(false)]
public Object InnerObject { get; }
[BrowsableAttribute(false)]
public:
virtual property Object^ InnerObject {
    Object^ get () sealed;
}
[<BrowsableAttribute(false)>]
abstract InnerObject : Object
[<BrowsableAttribute(false)>]
override InnerObject : Object
final function get InnerObject () : Object

プロパティ値

型: System. . :: . .Object
TaskHost に含まれるオブジェクトです。

実装

IDTSObjectHost. . :: . .InnerObject

説明

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

使用例

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

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