Creazione di un'attività personalizzata.Creating a Custom Task

I passaggi per la creazione di un'attività personalizzata sono simili a quelli richiesti per la creazione di qualsiasi altro oggetto personalizzato per Integration ServicesIntegration Services:The steps involved in creating a custom task are similar to the steps for creating any other custom object for Integration ServicesIntegration Services:

  • Creare una nuova classe che eredita dalla classe di base.Create a new class that inherits from the base class. Per un'attività, la classe di base è Task.For a task, the base class is Task.

  • Applicare alla classe l'attributo che identifica il tipo di oggetto.Apply the attribute that identifies the type of object to the class. Per un'attività, l'attributo è DtsTaskAttribute.For a task, the attribute is DtsTaskAttribute.

  • Eseguire l'override dell'implementazione dei metodi e delle proprietà della classe di base.Override the implementation of the base class's methods and properties. Per un'attività, questi includono i metodi Validate e Execute.For a task, these include the Validate and Execute methods.

  • Se si desidera, sviluppare un'interfaccia utente personalizzata.Optionally, develop a custom user interface. Per un'attività, è richiesta una classe tramite cui venga implementata l'interfaccia IDtsTaskUI.For a task, this requires a class that implements the IDtsTaskUI interface.

Introduzione alle attività personalizzateGetting Started with a Custom Task

Creazione di progetti e classiCreating Projects and Classes

Poiché tutte le attività gestite derivano dalla classe di base Task, il primo passaggio da completare quando si crea un'attività personalizzata consiste nel creare un progetto di libreria di classi nel linguaggio di programmazione gestito preferito e creare una classe che eredita dalla classe di base.Because all managed tasks derive from the Task base class, the first step when you create a custom task is to create a class library project in your preferred managed programming language and create a class that inherits from the base class. In questa classe derivata si eseguirà l'override dei metodi e delle proprietà della classe di base per implementare la funzionalità personalizzata.In this derived class you will override the methods and properties of the base class to implement your custom functionality.

Nella stessa soluzione creare un secondo progetto di libreria di classi per l'interfaccia utente personalizzata.In the same solution, create a second class library project for the custom user interface. Per semplificare lo sviluppo, si consiglia di utilizzare un assembly distinto per l'interfaccia utente, perché in questo modo è possibile e ridistribuire la gestione connessione o la relativa interfaccia utente in modo indipendente.A separate assembly for the user interface is recommended for ease of deployment because it allows you to update and redeploy the connection manager or its user interface independently.

Configurare entrambi i progetti per firmare gli assembly che verranno generati durante la compilazione utilizzando un file di chiave con nome sicuro.Configure both projects to sign the assemblies that will be generated at build time by using a strong name key file.

Applicazione dell'attributo DtsTaskApplying the DtsTask Attribute

Applicare l'attributo DtsTaskAttribute alla classe creata per identificarla come attività.Apply the DtsTaskAttribute attribute to the class that you have created to identify it as a task. Questo attributo fornisce informazioni in fase di progettazione, ad esempio il nome, la descrizione e il tipo di attività.This attribute provides design-time information such as the name, description, and task type of the task.

Utilizzare la proprietà UITypeName per collegare l'attività alla relativa interfaccia utente personalizzata.Use the UITypeName property to link the task to its custom user interface. Per ottenere il token di chiave pubblica che è necessario per questa proprietà, è possibile utilizzare sn.exe -t per visualizzare il token di chiave pubblica dal file di coppia di chiavi (con estensione snk) che si intende utilizzare per firmare l'assembly dell'interfaccia utente.To obtain the public key token that is required for this property, you an use sn.exe -t to display the public key token from the key pair (.snk) file that you intend to use to sign the user interface assembly.

using System;  
using Microsoft.SqlServer.Dts.Runtime;  
namespace Microsoft.SSIS.Samples  
{  
  [DtsTask  
  (  
   DisplayName = "MyTask",  
   IconResource = "MyTask.MyTaskIcon.ico",  
   UITypeName = "My Custom Task," +  
   "Version=1.0.0.0," +  
   "Culture = Neutral," +  
   "PublicKeyToken = 12345abc6789de01",  
   TaskType = "PackageMaintenance",  
   TaskContact = "MyTask; company name; any other information",  
   RequiredProductLevel = DTSProductLevel.None  
   )]  
  public class MyTask : Task  
  {  
    // Your code here.  
  }  
}  
Imports System  
Imports Microsoft.SqlServer.Dts.Runtime  

<DtsTask(DisplayName:="MyTask", _  
 IconResource:="MyTask.MyTaskIcon.ico", _  
 UITypeName:="My Custom Task," & _  
 "Version=1.0.0.0,Culture=Neutral," & _  
 "PublicKeyToken=12345abc6789de01", _  
 TaskType:="PackageMaintenance", _  
 TaskContact:="MyTask; company name; any other information", _  
 RequiredProductLevel:=DTSProductLevel.None)> _  
Public Class MyTask  
  Inherits Task  

  ' Your code here.  

End Class 'MyTask  

Compilazione, distribuzione e debug di attività personalizzateBuilding, Deploying, and Debugging a Custom Task

I passaggi per la compilazione, la distribuzione e il debug di un'attività personalizzata in Integration ServicesIntegration Services sono simili a quelli richiesti per altri tipi di oggetti personalizzati.The steps for building, deploying, and debugging a custom task in Integration ServicesIntegration Services are similar to the steps required for other types of custom objects. Per ulteriori informazioni, vedere compilazione, distribuzione e debug di oggetti personalizzati.For more information, see Building, Deploying, and Debugging Custom Objects.

Vedere ancheSee Also

Creazione di un'attività personalizzata Creating a Custom Task
La codifica di un'attività personalizzata Coding a Custom Task
Sviluppo di un'interfaccia utente per un'attività personalizzataDeveloping a User Interface for a Custom Task