Utilizzo delle attività WF di .NET Framework 3.0 in .NET Framework 4 con l'attività InteropUsing .NET Framework 3.0 WF Activities in .NET Framework 4 with the Interop Activity

L'attività Interop è un'attività di .NET Framework 4.6.1.NET Framework 4.6.1 (WF 4.5) che esegue il wrapping di un'attività di .NET Framework 3.5.NET Framework 3.5 (WF 3.5) all'interno di un flusso di lavoro di .NET Framework 4.6.1.NET Framework 4.6.1.The Interop activity is a .NET Framework 4.6.1.NET Framework 4.6.1 (WF 4.5) activity that wraps a .NET Framework 3.5.NET Framework 3.5 (WF 3.5) activity within a .NET Framework 4.6.1.NET Framework 4.6.1 workflow. L'attività di WF 3 può essere una singola attività foglia o un intero albero di attività.The WF 3 activity can be a single leaf activity or an entire tree of activities. L'esecuzione (annullamento e gestione delle eccezioni inclusi) e la persistenza dell'attività di .NET Framework 3.5.NET Framework 3.5 si verificano all'interno del contesto dell'istanza del flusso di lavoro di .NET Framework 4.6.1.NET Framework 4.6.1 in esecuzione.The execution (including cancellation and exception handling) and the persistence of the .NET Framework 3.5.NET Framework 3.5 activity occur within the context of the .NET Framework 4.6.1.NET Framework 4.6.1 workflow instance that is executing.

Nota

Il Interop attività non viene visualizzato nella casella degli strumenti della finestra di progettazione del flusso di lavoro a meno che non dispone di progetto del flusso di lavoro relativo Framework di destinazione impostazione .NET Framework 4.5.The Interop activity does not appear in the workflow designer toolbox unless the workflow's project has its Target Framework setting set to .NET Framework 4.5.

Criteri per l'uso di un'attività di WF 3 con un'attività di interoperabilitàCriteria for Using a WF 3 Activity with an Interop Activity

Affinché un'attività di WF 3 venga eseguita correttamente all'interno di un'attività Interop, devono essere soddisfatti i seguenti criteri:For a WF 3 activity to successfully execute within an Interop activity, the following criteria must be met:

Configurazione di un'attività di WF 3 all'interno di un'attività di interoperabilitàConfiguring a WF 3 Activity Within an Interop Activity

Per configurare e passare dati all'interno e all'esterno di un'attività di WF 3, nel limite dell'interazione, le proprietà dei metadati e quelle dell'attività di WF 3 sono esposte dall'attività Interop.To configure and pass data into and out of a WF 3 activity, across the interoperation boundary, the WF 3 activity’s properties and metadata properties are exposed by the Interop activity. Le proprietà dei metadati dell'attività di WF 3 (ad esempio Name) sono esposte tramite la raccolta ActivityMetaProperties.The WF 3 activity’s metadata properties (such as Name) are exposed through the ActivityMetaProperties collection. Si tratta di una raccolta di coppie nome-valore usata per definire i valori delle proprietà dei metadati dell'attività di WF 3.This is a collection of name-value pairs used to define the values for the WF 3 activity’s metadata properties. Una proprietà dei metadati è una proprietà supportata dalla proprietà di dipendenza per la quale viene impostato il flag Metadata.A metadata property is a property backed by dependency property for which the Metadata flag is set.

Le proprietà dei metadati dell'attività di WF 3 sono esposte tramite la raccolta ActivityProperties.The WF 3 activity’s properties are exposed through the ActivityProperties collection. Si tratta di un set di coppie nome-valore, in cui ogni valore è un oggetto Argument, usato per definire gli argomenti per le proprietà dell'attività di WF 3.This is a set of name-value pairs, where each value is a Argument object, used to define the arguments for the WF 3 activity’s properties. Poiché non è possibile dedurre la direzione di una proprietà di attività di WF 3, ogni proprietà emerge come un InArgument / OutArgument coppia.Because the direction of a WF 3 activity property cannot be inferred, every property is surfaced as an InArgument/OutArgument pair. A seconda dell'utilizzo dell'attività della proprietà, è possibile fornire una voce InArgument, una voce OutArgument o entrambe.Depending on the activity’s usage of the property, you may want to provide an InArgument entry, an OutArgument entry, or both. Il nome previsto della voce InArgument nella raccolta è il nome della proprietà come definito nell'attività di WF 3.The expected name of the InArgument entry in the collection is the name of the property as defined on the WF 3 activity. Il nome previsto del OutArgument voce nella raccolta è una concatenazione del nome della proprietà e la stringa "Out".The expected name of the OutArgument entry in the collection is a concatenation of the name of the property and the string "Out".

Limitazioni sull'utilizzo di un'attività di WF 3 all'interno di un'attività di interoperabilitàLimitations of Using a WF 3 Activity Within an Interop Activity

Le attività di WF 3 fornite dal sistema non possono essere sottoposte a wrapping direttamente in un'attività Interop.The WF 3 system-provided activities cannot be directly wrapped in an Interop activity. Per alcune attività di WF 3, ad esempio DelayActivity, ciò è dovuto alla presenza di un'attività di WF 4.5 analoga.For some WF 3 activities, such as DelayActivity, this is because there is an analogous WF 4.5 activity. Per altre, è invece dovuto al fatto che la funzionalità dell'attività non è supportata.For others, this is because the functionality of the activity is not supported. Molte attività di WF 3 fornite dal sistema possono essere usate all'interno di flussi di lavoro sottoposti a wrapping dall'attività Interop, soggette alle seguenti restrizioni:Many WF 3 system-provided activities can be used within workflows wrapped by the Interop activity, subject to the following restrictions:

  1. Gli oggetti Send e Receive non possono essere usati in un'attività Interop.Send and Receive cannot be used in an Interop activity.

  2. Gli oggetti WebServiceInputActivity, WebServiceOutputActivity e WebServiceFaultActivity non possono essere usati all'interno di un'attività Interop.WebServiceInputActivity, WebServiceOutputActivity, and WebServiceFaultActivity cannot be used within an Interop activity.

  3. L'oggetto InvokeWorkflowActivity non può essere usato all'interno di un'attività Interop.InvokeWorkflowActivity cannot be used within an Interop activity.

  4. L'oggetto SuspendActivity non può essere usato all'interno di un'attività Interop.SuspendActivity cannot be used within an Interop activity.

  5. Le attività correlate alla compensazione non possono essere usate all'interno di un'attività Interop.Compensation-related activities cannot be used within an Interop activity.

Per quanto riguarda l'uso delle attività di WF 3 all'interno dell'attività Interop è necessario comprendere alcune specifiche di comportamento:There are also some behavioral specifics to understand regarding the use of WF 3 activities within the Interop activity:

  1. Le attività di WF 3 contenute all'interno di un'attività Interop vengono inizializzate quando viene eseguita l'attività Interop.WF 3 activities contained within an Interop activity are initialized when the Interop activity is executed. In WF 4.5 non esiste alcuna fase di inizializzazione di un'istanza del flusso di lavoro precedente alla relativa esecuzione.In WF 4.5 there is no initialization phase for a workflow instance prior to its execution.

  2. Il runtime di WF 4.5 non esegue il checkpoint dello stato dell'istanza del flusso di lavoro quando inizia una transazione, indipendentemente dal punto in cui inizia quella transazione (all'interno o all'esterno di un'attività Interop).The WF 4.5 runtime does not checkpoint workflow instance state when a transaction begins, regardless of where that transaction begins (within or outside of an Interop activity).

  3. I record di rilevamento WF 3 per attività all'interno di un'attività Interop vengono forniti ai partecipanti del rilevamento WF 4.5 come oggetti InteropTrackingRecord.WF 3 tracking records for activities within an Interop activity are provided to WF 4.5 tracking participants as InteropTrackingRecord objects. InteropTrackingRecord è un derivato di CustomTrackingRecord.InteropTrackingRecord is a derivative of CustomTrackingRecord.

  4. Un'attività personalizzata di WF 3 può accedere ai dati usando le code del flusso di lavoro all'interno dell'ambiente di interazione, esattamente come avviene all'interno del runtime del flusso di lavoro WF 3.A WF 3 custom activity can access data using workflow queues within the interoperation environment in exactly the same way as within the WF 3 workflow runtime. Non è richiesta alcuna modifica al codice di attività personalizzata.No custom activity code changes are required. Sull'host, i dati vengono accodati a una coda del flusso di lavoro WF 3 riprendendo un oggetto Bookmark.On the host, data is enqueued to a WF 3 workflow queue by resuming a Bookmark. Il nome del segnalibro è il formato di stringa del nome della coda del flusso di lavoro IComparable.The name of the bookmark is the string form of the IComparable workflow queue name.

Vedere ancheSee Also

Uso di un'attività di .NET Framework 3.0 o .NET Framework 3.5 in un flusso di lavoro di .NET Framework 4.5Using a .NET Framework 3.0 or .NET Framework 3.5 Activity in a .NET Framework 4.5 Workflow