--- title: "Discovering Data Flow Components Programmatically | Microsoft Docs" ms.custom: "" ms.date: "03/03/2017" ms.prod: sql ms.prod_service: "integration-services" ms.reviewer: "" ms.technology: integration-services ms.topic: "reference" dev_langs: - "VB" - "CSharp" helpviewer_keywords: - "PipelineComponentInfos collection" - "data flow task [Integration Services], components" - "discovering data flow components" - "components [Integration Services], data flow" - "data flow [Integration Services], components" ms.assetid: ff92a96a-8af6-4532-82cc-c0bbff92401b author: chugugrace ms.author: chugu --- # Discovering Data Flow Components Programmatically [!INCLUDE[ssis-appliesto](../../includes/ssis-appliesto-ssvrpluslinux-asdb-asdw-xxx.md)] After you have added a data flow task to a package, your next step may be to determine what data flow components are available for your use. You can programmatically discover the data flow sources, transformations, and destinations that are installed and available on the local computer. For information about adding a data flow task to the package, see [Adding the Data Flow Task Programmatically](../../integration-services/building-packages-programmatically/adding-the-data-flow-task-programmatically.md). ## Discovering Components The class provides the collection, which contains a object for each component correctly installed on the local computer. Each contains information about a component such as its name, description, and creation name. You can use the value returned in the property to set the property of the when you add a component to a package. ## Next Step After discovering available components, the next step is to add and configure the components, which is discussed in the next topic, [Adding Data Flow Components Programmatically](../../integration-services/building-packages-programmatically/adding-data-flow-components-programmatically.md). ## Sample The following code sample shows how to enumerate the collection of the object to programmatically discover the data flow components available on the local computer. This sample requires a reference to the Microsoft.SqlServer.ManagedDTS assembly. ```csharp using System; using Microsoft.SqlServer.Dts.Runtime; namespace Microsoft.SqlServer.Dts.Samples { class Program { static void Main(string[] args) { Application application = new Application(); PipelineComponentInfos componentInfos = application.PipelineComponentInfos; foreach (PipelineComponentInfo componentInfo in componentInfos) { Console.WriteLine("Name: " + componentInfo.Name + "\n" + " CreationName: " + componentInfo.CreationName + "\n"); } Console.Read(); } } } ``` ```vb Imports Microsoft.SqlServer.Dts.Runtime Module Module1 Sub Main() Dim application As Application = New Application() Dim componentInfos As PipelineComponentInfos = application.PipelineComponentInfos For Each componentInfo As PipelineComponentInfo In componentInfos Console.WriteLine("Name: " & componentInfo.Name & vbCrLf & _ " CreationName: " & componentInfo.CreationName & vbCrLf) Next Console.Read() End Sub End Module ``` ## See Also [Adding Data Flow Components Programmatically](../../integration-services/building-packages-programmatically/adding-data-flow-components-programmatically.md)