Freigeben über


ValidationContext-Klasse

Enthält Informationen über die aktuelle Validierungsverarbeitung, die ausgeführt wird.

Vererbungshierarchie

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

Namespace:  Microsoft.VisualStudio.Modeling.Validation
Assembly:  Microsoft.VisualStudio.Modeling.Sdk.12.0 (in Microsoft.VisualStudio.Modeling.Sdk.12.0.dll)

Syntax

'Declaration
Public Class ValidationContext
public class ValidationContext

Der ValidationContext-Typ macht die folgenden Member verfügbar.

Konstruktoren

  Name Beschreibung
Öffentliche Methode ValidationContext(array<String[], ModelElement) Initialisiert eine neue Instanz der ValidationContext-Klasse, die ein bestimmtes Modellelement zum Überprüfen hat.
Öffentliche Methode ValidationContext(array<String[], IEnumerable<ModelElement>) ctor
Öffentliche Methode ValidationContext(ValidationCategories, ModelElement) Konstruktor
Öffentliche Methode ValidationContext(ValidationCategories, IEnumerable<ModelElement>) Konstruktor

Zum Seitenanfang

Eigenschaften

  Name Beschreibung
Öffentliche Eigenschaft Categories Ruft die Validierungskategorien für diesen Validierungskontext ab.
Öffentliche Eigenschaft CurrentViolations Ruft die Auflistung mit Validierungsmeldungen für den Validierungskontext ab.
Öffentliche Eigenschaft CustomCategories Ruft die benutzerdefinierten Formatzeichenfolgen für Validierung für den Validierungskontext ab.
Öffentliche Eigenschaft ValidationSubjects Ruft die Liste der zu überprüfenden Modellelemente ab.

Zum Seitenanfang

Methoden

  Name Beschreibung
Geschützte Methode ConstructValidationMessage Erstellt eine Validierungsmeldung.Sie können diese Methode überschreiben, um eine benutzerdefinierte Validierungsmeldung zu erstellen.
Öffentliche Methode Equals Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Geschützte Methode Finalize Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche Methode GetCache<T>() Ruft den Cache für die angegebene Klasse ab.
Öffentliche Methode GetCache<T>(String) Ruft den Cache für die angegebene Klasse ab.
Öffentliche Methode GetHashCode Fungiert als die Standardhashfunktion. (Von Object geerbt.)
Öffentliche Methode GetNavigationProxyModelElements Ruft die Proxymodellelemente ab, wenn ein Validierungsfehler im Modell auftritt.
Öffentliche Methode GetType Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche Methode LogError Erstellt einen Validierungsfehler und protokolliert eine Meldung in der Sammlung, die der Validierungskontext beibehält.
Öffentliche Methode LogFatal Erstellt einen schwerwiegenden Fehler und protokolliert eine Meldung im Validierungskontext.
Öffentliche Methode LogMessage Erstellt eine Validierungsinformationsmeldung und protokolliert sie in der Sammlung, die der Validierungskontext beibehält.
Öffentliche Methode LogViolation Erstellt einen Validierungsfehler, eine Meldung oder eine Warnung.
Öffentliche Methode LogWarning Erstellt eine Validierungswarnung und protokolliert die Meldung in der Sammlung, die der Validierungskontext beibehält.
Geschützte Methode MemberwiseClone Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche Methode SetCacheValue<T> Legt das dem angegebenen Namen zugeordnete zwischengespeicherte Objekt fest.
Öffentliche Methode ToString Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Öffentliche Methode TryGetCacheValue<T> Gibt zurück, ob das zwischengespeicherte Objekt, das dem Namen zugeordnet ist, vorhanden ist

Zum Seitenanfang

Hinweise

Eine Instanz dieser Klasse wird jedes Mal erstellt, der der Modellierungsnamespace die Validierungsüberprüfung beginnt. Diese Instanz wird in jede Validierungsmethode übergeben, die Sie für Validierung registriert haben.

Beim Klonen eine Validierungsmethode, die Sie schreiben, aufgerufen wird, kann der Code Validierungsfehler erfasst, indem das LogError, LogWarning und LogMessage - methoden. Diese Validierungsfehler werden der CurrentViolations-Eigenschaft des ValidationContext-Objekts hinzugefügt.

Wenn die Validierung beendet wird, werden alle Validierungsfehler, Warnungen und Meldungen als Auflistungen LogMessage-Objekttreffer in der CurrentViolations-Eigenschaft dargestellt.

Das ValidationContext-Objekt wird dann an alle folgenden Validierungsmethoden übergeben. Die Eigenschaft CurrentViolations enthält alle Fehler, Warnungen und Nachrichten, die bis zu diesem Punkt in der aktuellen Validierung gefunden wurden.

Beim nächsten Ausführen startet dieser Validierung, ein weiteres ValidationContext-Objekt erstellt wird. Dass Objekt zu jeder Validierungsmethode wiederum mit Fehlern, Warnungen und die Nachrichten, die diesem Objekt hinzugefügt werden übergeben wird, während sie angetroffen werden.

Weitere Informationen finden Sie unter Validierung in einer domänenspezifischen Sprache.

Beispiele

Das folgende Beispiel zeigt eine Methode, die durch ein Attribut ergänzt wird, das angibt, dass eine Validierungsmethode ist.

Das ValidationContext-Objekt, das in jeder Validierungsmethode übergeben wird, enthält Informationen über das aktuelle Validierungsverarbeiten. Diese Informationen umfassen die Fehler, Warnungen und Nachrichten, die in den kumulierten Validierungsmethoden, die bereits ausgeführt wurden.

Das ValidationContext-Objekt verfügt über Methoden, die Fehlern, die Warnungen und den Meldungen hinzufügen, wie der LogError methode im folgenden Beispiel:

[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);
        }
      }
}

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Siehe auch

Referenz

Microsoft.VisualStudio.Modeling.Validation-Namespace