Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Imperativní ověřování založené na kódu poskytuje jednoduchý způsob, jak aktivity poskytovat ověřování o sobě, a je k dispozici pro aktivity odvozené od CodeActivity, AsyncCodeActivitya NativeActivity. Ověřovací kód, který určuje chyby ověření nebo upozornění, se přidá do aktivity.
Použití validace Code-Based
Ověřování na základě kódu je podporováno aktivitami, které jsou odvozeny od CodeActivity, AsyncCodeActivitya NativeActivity. Ověřovací kód lze umístit do CacheMetadata přepsání a do argumentu metadat je možné přidat chyby ověření nebo upozornění. V následujícím příkladu, pokud je Cost větší než Price, přidá se chyba ověření do metadat.
Poznámka:
Všimněte si, že Cost a Price nejsou argumenty pro aktivitu, ale jsou vlastnosti, které jsou nastaveny v době návrhu. To je důvod, proč mohou být jejich hodnoty ověřeny v překrytí CacheMetadata. Hodnotu dat procházejícího argumentem nelze v době návrhu ověřit, protože data neprotékají do doby běhu, ale argumenty aktivity lze ověřit, aby se zajistilo, že jsou svázané pomocí RequiredArgument atributů a skupin přetížení. Tento ukázkový kód zobrazí atribut argumentu RequiredArgumentDescription a pokud není vázán, vygeneruje se chyba ověření. Požadované argumenty jsou popsány v povinných argumentech a skupinách přetížení.
public sealed class CreateProduct : CodeActivity
{
public double Price { get; set; }
public double Cost { get; set; }
// [RequiredArgument] attribute will generate a validation error
// if the Description argument is not set.
[RequiredArgument]
public InArgument<string> Description { get; set; }
protected override void CacheMetadata(CodeActivityMetadata metadata)
{
base.CacheMetadata(metadata);
// Determine when the activity has been configured in an invalid way.
if (this.Cost > this.Price)
{
// Add a validation error with a custom message.
metadata.AddValidationError("The Cost must be less than or equal to the Price.");
}
}
protected override void Execute(CodeActivityContext context)
{
// Not needed for the sample.
}
}
Ve výchozím nastavení se při zavolání AddValidationError do metadat přidá chyba ověření. Chcete-li přidat upozornění ověření, použijte přetížení AddValidationError, které přijímá ValidationError, a určete, že ValidationError představuje upozornění nastavením vlastnosti IsWarning.
K ověření dochází, když je pracovní postup změněn v návrháři pracovního postupu a všechny chyby nebo upozornění ověření se zobrazí v návrháři pracovního postupu. K ověření dochází také za běhu při vyvolání pracovního postupu a pokud dojde k nějakým chybám ověření, InvalidWorkflowException vyvolá se výchozí logika ověření. Další informace o vyvolání ověřování a přístupu k jakýmkoli upozorněním nebo chybám ověření najdete v tématu Vyvolání ověření aktivity.
Výjimky, které jsou vyvolány z CacheMetadata, nejsou považovány za chyby ověřování. Tyto výjimky uniknou z volání a Validate musí je zpracovat volající.
Ověřování na základě kódu je užitečné pro ověřování aktivity, která obsahuje kód, ale nemá přehled o ostatních aktivitách v pracovním postupu. Ověřování deklarativních omezení umožňuje ověřit vztahy mezi aktivitou a dalšími aktivitami v pracovním postupu a je popsáno v tématu deklarativní omezení .