Convalida di relazioni tra attivitàActivity Relationships Validation

Il presente esempio è costituito da tre attività, CreateCity, CreateState e CreateCountry.This sample consists of three activities, CreateCity, CreateState, and CreateCountry. CreateCity deve trovarsi all'interno di un'attività CreateState e CreateState deve trovarsi all'interno di un'attività CreateCountry.CreateCity must be inside a CreateState activity, and CreateState must be inside a CreateCountry activity. Ai fini di questo esempio, la logica di convalida è nel codice per l'attività CreateState e in XAML per l'attività CreateCity.For the purpose of this sample, the validation logic is in code for the CreateState activity, and in XAML for the CreateCity activity. Entrambi i vincoli presentano lo stesso comportamento.Both constraints have the same behavior.

.NET Framework 4.6.1.NET Framework 4.6.1 fornisce le tre attività di supporto seguenti che consentono allo sviluppatore di convalidare relazioni tra attività.The .NET Framework 4.6.1.NET Framework 4.6.1 provides the following three helper activities that allow the developer to validate relationships between activities:

GetParentChain
Viene fornita la raccolta di tutte le attività che appartengono all'elemento padre del nodo corrente.Provides the collection of all activities that belong to the parent of the current node

GetChildSubtree
Viene fornita la raccolta di tutte le attività che appartengono al sottoalbero, escluso il nodo corrente.Provides the collection of all activities that belong to the sub-tree of the current node, excluding the current node

GetWorkflowTree
Viene fornita la raccolta di tutte le attività nello stesso albero del nodo corrente.Provides the collection of all activities in the same tree as the current node

Nell'esempio, un'attività ForEach<T> viene usata per esaminare la raccolta restituita da GetParentChain.In the sample, a ForEach<T> activity is used to walk through the collection returned by GetParentChain. Per ogni elemento nella raccolta, il tipo viene confrontato con CreateCountry (o CreateState se è in corso la convalida di CreateCity) e quando viene trovata una corrispondenza il flag del risultato viene impostato su true.For every element in the collection, its type is compared to CreateCountry (or CreateState if CreateCity is being validated), and when a match is found the result flag is set to true. Infine, viene usato AssertValidation per generare un errore di convalida se il flag del risultato viene impostato su false.Finally, an AssertValidation is used to generate a validation error if the result flag is set to false.

Per usare questo esempioTo use this sample

  1. Aprire la soluzione di esempio ContainmentValidation.sln in Visual Studio 2010Visual Studio 2010.Open the ContainmentValidation.sln sample solution in Visual Studio 2010Visual Studio 2010.

  2. Compilare la soluzione.Build the solution.

  3. Premere CTRL+F5 per avviare il programma.Press CTRL + F5 to launch the program.

Importante

È possibile che gli esempi siano già installati nel computer.The samples may already be installed on your computer. 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\Basic\Validation\ActivityRelationships