Creazione di attività personalizzate
Per creare un'attività personalizzata di base è necessario ereditare dalla classe Activity o da un tipo derivato. Per creare un'attività personalizzata composita è necessario ereditare dalla classe CompositeActivity o da un tipo derivato.
Nota
La creazione di un'attività personalizzata che eredita da un'attività personalizzata contenente attività figlio non è supportata.
La classe dell'attività personalizzata creata ne definisce proprietà, eventi e logica di esecuzione.
Proprietà
Nell'attività personalizzata è possibile utilizzare due tipi di proprietà di attività: le metaproprietà e le proprietà di istanza. Le metaproprietà non cambiano in seguito alla creazione di un'istanza di proprietà al momento dell'esecuzione, pertanto la proprietà deve essere impostata in fase di progettazione su un valore letterale. Una proprietà di istanza può essere impostata in fase di progettazione oppure è possibile associare la proprietà ai dati di istanza. In tal caso, il valore effettivo viene determinato solo in fase di esecuzione. Le proprietà di istanza possono inoltre essere modificate direttamente durante l'esecuzione del flusso di lavoro.
Per ulteriori informazioni sulle proprietà di attività, vedere Utilizzo delle proprietà dell'attività.
Logica di esecuzione
Quando si crea un'attività personalizzata, la relativa logica di esecuzione deve essere gestita in modo esplicito tramite il metodo Execute. Per soddisfare i requisiti specifici dell'attività è possibile eseguire l'override dei metodi aggiuntivi dell'elemento Activity.
Attributi
L'attività personalizzata può essere decorata con vari attributi per configurare vari parametri, fra cui l'ActivityDesigner da caricare e la modalità di convalida da utilizzare per l'attività. Nella tabella seguente sono elencati tutti gli attributi utilizzabili per decorare l'attività personalizzata.
Attributo | Descrizione |
---|---|
Indica quale classe derivata dalla classe ActivityCodeGenerator verrà utilizzata per generare il codice della fase di compilazione dell'attività personalizzata. |
|
Indica quale classe derivata dalla classe ActivityValidator verrà utilizzata per convalidare l'attività personalizzata. |
|
Indica che l'attività supporta un flusso alternativo. |
|
Indica che il nome di una determinata proprietà dell'attività personalizzata non verrà serializzato. |
|
Indica l'evento predefinito dell'attività personalizzata. |
|
Indica quale classe derivata dalla classe ActivityDesigner verrà utilizzata per implementare servizi in fase di progettazione nell'attività personalizzata. |
|
Indica che la finestra di progettazione dell'attività personalizzata appartiene a una determinata categoria. |
|
Indica quale serializzatore (ActivityMarkupSerializer, ActivityCodeDomSerializer, ActivityTypeCodeDomSerializer, CompositeActivityMarkupSerializer o un derivato di essi) verrà utilizzato per serializzare l'attività personalizzata. |
|
Indica che l'istanza del flusso di lavoro corrente deve rimanere invariata quando l'attività provvista di attributi completa l'esecuzione. |
|
Indica il nome di runtime dell'attività personalizzata. |
|
Indica l'icona da utilizzare per rappresentare l'attività personalizzata in un contenitore, ad esempio un'utilità personalizzata di progettazione dei flussi di lavoro. |
|
Indica quale classe derivata dalla classe ActivityToolboxItem verrà utilizzata con l'attività personalizzata in un contenitore, ad esempio un'utilità personalizzata di progettazione dei flussi di lavoro. |
|
Indica la stringa e il tipo di filtro da utilizzare per l'attività personalizzata quando viene utilizzata in un contenitore, ad esempio un'utilità personalizzata di progettazione dei flussi di lavoro. |
Avviso
Se l'attività personalizzata utilizza l'attributo PersistOnCloseAttribute, il flusso di lavoro che utilizza l'attività personalizzata deve specificare un servizio di persistenza da utilizzare. In caso contrario, quando il flusso di lavoro viene avviato, il sistema genera un'eccezione.
L'override di attributi può essere eseguito nel senso che se si decora l'attività personalizzata con attributi utilizzati dall'attività di base, i valori sottoposti a override vengono utilizzati nell'attività personalizzata. Si supponga ad esempio che occorra creare una bitmap personalizzata nella casella degli strumenti dell'attività personalizzata, utilizzando tuttavia il serializzatore e la convalida di attività predefiniti dell'attività di base. In questo caso è sufficiente decorare l'attività personalizzata con l'attributo ToolboxItemAttribute e impostare il valore di conseguenza.
Creazione di attività personalizzate a partire da attività predefinite di Windows Workflow Foundation
È possibile derivare attività personalizzate dai tipi di attività seguenti:
Tipo attività | Descrizione |
---|---|
Activity |
Tipo di base da cui derivano tutte le attività. |
Chiama metodi di un host durante la comunicazione locale. |
|
Tutte le attività composite derivano da questo tipo. |
|
Gestisce gli eventi in entrata generati da un host durante la comunicazione locale. |
|
Consente di creare attività composite personalizzate che presentano attività figlio eseguite in sequenza. |
|
Consente di creare flussi di lavoro sequenziali. |
|
Utilizzata nei flussi di lavoro di macchine a stati per gestire eventi o l'inizializzazione di un determinato stato. |
|
Consente di creare flussi di lavoro di macchine a stati. |
Personalizzazione di attività
È possibile personalizzare la logica predefinita di un'attività personalizzata utilizzando un insieme di classi correlate che incapsulano componenti specifici di funzionalità.
Nelle sezioni seguenti vengono fornite informazioni più dettagliate su questi argomenti:
Creazione di attività composte personalizzate
Serializzazione di attività personalizzate
Come generare codice utilizzando attività personalizzate
Vedere anche
Riferimenti
Activity
CompositeActivity
ActivityBind
Concetti
Utilizzo delle proprietà dell'attività
Panoramica sulla logica di convalida delle attività
Creazione di un ActivityDesigner personalizzato
Altre risorse
Sviluppo di attività flusso di lavoro
Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.