Condividi tramite


Classe ValidationContext

Contiene informazioni sull'elaborazione corrente di convalida in fase di esecuzione.

Gerarchia di ereditarietà

System.Object
  Microsoft.VisualStudio.Modeling.Validation.ValidationContext
    Microsoft.VisualStudio.Modeling.Shell.VsValidationContext

Spazio dei nomi:  Microsoft.VisualStudio.Modeling.Validation
Assembly:  Microsoft.VisualStudio.Modeling.Sdk.12.0 (in Microsoft.VisualStudio.Modeling.Sdk.12.0.dll)

Sintassi

'Dichiarazione
Public Class ValidationContext
public class ValidationContext

Il tipo ValidationContext espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo pubblico ValidationContext(array<String[], ModelElement) Inizializza una nuova istanza della classe ValidationContext che include uno specifico elemento di modello da convalidare.
Metodo pubblico ValidationContext(array<String[], IEnumerable<ModelElement>) ctor
Metodo pubblico ValidationContext(ValidationCategories, ModelElement) Costruttore
Metodo pubblico ValidationContext(ValidationCategories, IEnumerable<ModelElement>) Costruttore

In alto

Proprietà

  Nome Descrizione
Proprietà pubblica Categories Ottiene le categorie di convalida per questo contesto di convalida.
Proprietà pubblica CurrentViolations Ottiene la raccolta di messaggi di convalida per il contesto di convalida.
Proprietà pubblica CustomCategories Ottiene le stringhe di convalida personalizzate per il contesto di convalida.
Proprietà pubblica ValidationSubjects Ottiene l'elenco degli elementi di modello da convalidare.

In alto

Metodi

  Nome Descrizione
Metodo protetto ConstructValidationMessage Crea un messaggio di convalida.È possibile eseguire l'override di questo metodo per costruire un messaggio di convalida personalizzato.
Metodo pubblico Equals Determina se l'oggetto specificato equivale all'oggetto corrente. (Ereditato da Object)
Metodo protetto Finalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblico GetCache<T>() Ottiene la cache per la classe specificata.
Metodo pubblico GetCache<T>(String) Ottiene la cache per la classe specificata.
Metodo pubblico GetHashCode Funge da funzione hash predefinita. (Ereditato da Object)
Metodo pubblico GetNavigationProxyModelElements Ottiene gli elementi del modello proxy quando si verifica un errore di convalida nel modello.
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblico LogError Crea un errore di convalida e registra un messaggio nella raccolta che il contesto di convalida gestisce.
Metodo pubblico LogFatal Crea un errore irreversibile per la convalida e registra un messaggio nel contesto di convalida.
Metodo pubblico LogMessage Crea un messaggio informativo di convalida e lo registra nella raccolta che il contesto di convalida gestisce.
Metodo pubblico LogViolation Crea un errore, un messaggio o avviso di convalida.
Metodo pubblico LogWarning Crea un errore avviso di convalida e registra il messaggio nella raccolta che il contesto di convalida gestisce.
Metodo protetto MemberwiseClone Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo pubblico SetCacheValue<T> Imposta l'oggetto memorizzato nella cache associato al nome
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
Metodo pubblico TryGetCacheValue<T> Restituisce un valore che indica se l'oggetto memorizzato nella cache associato al nome esiste o meno

In alto

Note

Un'istanza di questa classe viene creata ogni volta che lo spazio dei nomi modeling avvia il controllo di convalida. Questa istanza viene passato a ogni metodo di convalida registrata per il controllo di convalida.

Ogni volta che un metodo di convalida scritta viene chiamato, il codice può registrare errori di convalida utilizzando il LogError, in LogWarning e i metodi di LogMessage. Questi errori di convalida vengono aggiunte alla proprietà di CurrentViolations dell'oggetto di ValidationContext.

Quando la convalida viene completata, tutti gli errori di convalida, avvisi e messaggi sono rappresentati come raccolte di oggetti di LogMessage nella proprietà di CurrentViolations.

L'oggetto di ValidationContext viene quindi passato a tutti i metodi di convalida successivi. La proprietà di CurrentViolations contiene tutti gli errori, avvisi e messaggi che sono stati verificati fino a questo punto il controllo corrente di convalida.

La prossima volta la convalida viene avviata, un altro oggetto di ValidationContext viene creato. L'oggetto che viene passato a ogni metodo di convalida a sua volta con errori, avvisi e messaggi aggiunti a tale oggetto non appena vengono individuati.

Per ulteriori informazioni, vedere Convalida in un linguaggio specifico di dominio.

Esempi

L'esempio seguente è un metodo che viene decorato da un attributo che indica che è un metodo di convalida.

L'oggetto di ValidationContext che verrà passato a ogni metodo di convalida contiene informazioni sull'elaborazione corrente di convalida. Queste informazioni includono gli errori, avvisi e messaggi che vengono accumulati nei metodi di convalida che sia già stata eseguita.

L'oggetto di ValidationContext dispone di metodi che aggiungono gli errori, gli avvisi e messaggi, ad esempio il metodo di LogError nell'esempio seguente:

[ValidationMethod
(
    ValidationCategory.Open |
    ValidationCategory.Save |
    ValidationCategory.Menu
)
]
private void ValidateParentBirth(ValidationContext context)
{
    foreach (Person parent in this.Parent)
        {
        if (this.Birth <= parent.Birth)
        {
            context.LogError(
                       "Birth must be after Parent's birth",
                       "FamilyParentBirthError", 
                       this, 
                       parent);
        }
      }
}

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Vedere anche

Riferimenti

Spazio dei nomi Microsoft.VisualStudio.Modeling.Validation