OperationScopeOperationScope

In questo esempio viene illustrato come è possibile usare le attività di messaggistica, Receive e SendReply per esporre un'attività personalizzata esistente come operazione in un servizio flusso di lavoro.This sample demonstrates how the messaging activities, Receive and SendReply can be used to expose an existing custom activity as an operation in a workflow service. Questo esempio include una nuova attività personalizzata chiamata OperationScope.This sample includes a new custom activity called an OperationScope. È destinata a facilitare lo sviluppo di un servizio flusso di lavoro consentendo agli utenti di creare separatamente il corpo delle operazioni come attività personalizzate ed esponendole quindi facilmente come operazioni del servizio tramite l'attività OperationScope.It is intended to ease the development of a workflow service by allowing users to author the body of their operations separately as custom activities and then easily exposing them as service operations using the OperationScope activity. Ad esempio, un'attività Add personalizzata che accetta due argomenti in e restituisce un argomento out potrebbe essere esposta come un'operazione Add nel servizio flusso di lavoro rilasciandolo in OperationScope.For example, a custom Add activity that takes two in arguments and returns one out argument could be exposed as an Add operation on the workflow service by dropping it into an OperationScope.

Il funzionamento dell'ambito si basa sul controllo dell'attività fornita come corpo.The scope works by inspecting the activity provided as its body. Gli eventuali argomenti in non associati vengono considerati come input dal messaggio in arrivo.Any unbound in arguments are assumed to be inputs from the incoming message. Tutti gli argomenti out, indipendentemente che siano associati, sono considerati come output nel messaggio di risposta successivo.All out arguments, regardless of whether they are bound, are assumed to be outputs in the subsequent reply message. Il nome dell'operazione esposto viene rilevato dal nome visualizzato dell'attività OperationScope.The exposed operation’s name is taken from the display name of the OperationScope activity. Come risultato finale viene eseguito il wrapping dell'attività del corpo in un oggetto Receive e SendReply con i parametri dei messaggi associati agli argomenti dell'attività.The end result is that the body activity is wrapped in a Receive and SendReply with the parameters from the messages bound to the arguments of the activity.

In questo esempio viene esposto un servizio flusso di lavoro tramite endpoint HTTP.This sample exposes a workflow service using HTTP endpoints. Per l'esecuzione, è necessario aggiungere ACL di URL appropriati.To run, proper URL ACLs must be added. Per altre informazioni, vedere Configuring HTTP and HTTPS.For more information, see Configuring HTTP and HTTPS. Eseguire il comando seguente in un prompt dei comandi con privilegi elevati consente di aggiungere gli elenchi ACL appropriati (assicurarsi che il dominio e il nome utente vengono sostituiti con dominio %\% UserName %).Executing the following command at an elevated prompt adds the appropriate ACLs (ensure that your Domain and Username are substituted for %DOMAIN%\%UserName%).

netsh http aggiungere urlacl url =http://+:8000/ utente = % dominio %\% UserName %netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%

Per eseguire l'esempioTo run the sample

  1. Aprire la soluzione OperationScope.sln in Visual Studio 2010Visual Studio 2010.Open the OperationScope.sln solution in Visual Studio 2010Visual Studio 2010.

  2. Impostare più progetti di avvio facendo clic sulla soluzione in Esplora soluzioni e selezionando Imposta progetti di avvio.Set multiple start-up projects by right-clicking the solution in Solution Explorer and selecting Set Startup Projects. Aggiungere Scenario e Scenario_Client (in tale ordine) come più progetti di avvio.Add Scenario and Scenario_Client (in that order) as multiple start-up projects.

  3. Per compilare la soluzione, premere CTRL+MAIUSC+B.Press CTRL+SHIFT+B to build the solution.

    Avviso

    Questo passaggio è necessario per visualizzare il flusso di lavoro BankService.xaml a causa dell'attività personalizzata OperationScope.This step is required to view the BankService.xaml workflow due to the custom activity OperationScope.

  4. Premere CTRL+F5 per eseguire l'applicazione.Press CTRL+F5 to run the application. La console Scenario_Client richiede l'input e l'output corrispondente viene visualizzato nella console di Scenario.The Scenario_Client console prompts you for inputs and the corresponding output is seen in the Scenario console.

Importante

È possibile che gli esempi siano già installati nel computer.The samples may already be installed on your machine. Verificare la directory seguente (impostazione predefinita) prima di continuare.Check for the following (default) directory before continuing.

<InstallDrive>:\WF_WCF_Samples

Se questa directory non esiste, andare al Windows Communication Foundation (WCF) e gli esempi di Windows Workflow Foundation (WF) per .NET Framework 4 per scaricare tutti i Windows Communication Foundation (WCF) e WFWF esempi.If this directory does not exist, go to Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 to download all Windows Communication Foundation (WCF) and WFWF samples. Questo esempio si trova nella directory seguente.This sample is located in the following directory.

<InstallDrive>:\WF_WCF_Samples\WF\Scenario\Services\OperationScope