Compartir a través de


ValidationContext (Clase)

Contiene información sobre el proceso de validación actual que se realice.

Jerarquía de herencia

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

Espacio de nombres:  Microsoft.VisualStudio.Modeling.Validation
Ensamblado:  Microsoft.VisualStudio.Modeling.Sdk.12.0 (en Microsoft.VisualStudio.Modeling.Sdk.12.0.dll)

Sintaxis

'Declaración
Public Class ValidationContext
public class ValidationContext

El tipo ValidationContext expone los siguientes miembros.

Constructores

  Nombre Descripción
Método público ValidationContext(array<String[], ModelElement) Inicializa una nueva instancia de la clase ValidationContext que tiene un elemento modelo específico para validar.
Método público ValidationContext(array<String[], IEnumerable<ModelElement>) Ctor
Método público ValidationContext(ValidationCategories, ModelElement) Constructor
Método público ValidationContext(ValidationCategories, IEnumerable<ModelElement>) Constructor

Arriba

Propiedades

  Nombre Descripción
Propiedad pública Categories Obtiene las categorías de validación para este contexto de validación.
Propiedad pública CurrentViolations Obtiene la colección de mensajes de validación para el contexto de validación.
Propiedad pública CustomCategories Obtiene las cadenas de validación para el contexto de validación.
Propiedad pública ValidationSubjects Obtiene la lista de elementos del modelo para validar.

Arriba

Métodos

  Nombre Descripción
Método protegido ConstructValidationMessage Crea un mensaje de validación.Puede invalidar este método para construir un mensaje de validación personalizado.
Método público Equals Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object).
Método protegido Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método público GetCache<T>() Obtiene la memoria caché de la clase especificada.
Método público GetCache<T>(String) Obtiene la memoria caché de la clase especificada.
Método público GetHashCode Sirve como la función hash predeterminada. (Se hereda de Object).
Método público GetNavigationProxyModelElements Obtiene los elementos del modelo de proxy cuando se produce un error de validación en el modelo.
Método público GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método público LogError Crea un error de validación y registra un mensaje en la colección que mantiene el contexto de validación.
Método público LogFatal Crea un error irrecuperable para la validación y registra un mensaje en el contexto de validación.
Método público LogMessage Crea un mensaje de información de validación y lo registra en la colección que mantiene el contexto de validación.
Método público LogViolation Crea un error, un mensaje o una advertencia de validación.
Método público LogWarning Crea una advertencia de validación y registra el mensaje en la colección que mantiene el contexto de validación.
Método protegido MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método público SetCacheValue<T> Establece el objeto almacenado en caché asociado con el nombre.
Método público ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).
Método público TryGetCacheValue<T> Devuelve si el objeto en caché asociado al nombre existe o no

Arriba

Comentarios

Una instancia de esta clase se crea cada vez que el espacio de nombres de modelado inicia la comprobación de validación. Esta instancia se pasa a cada método de validación que se ha registrado para la comprobación de validación.

Cada vez que un método de validación que se escribe llama, el código puede registrar errores de validación mediante el LogError, el LogWarning, y métodos de LogMessage . Estos errores de validación se agregan a la propiedad de CurrentViolations del objeto de ValidationContext .

Cuando finaliza la validación, todos los errores de validación, advertencias, mensajes y se representan como colecciones de objetos de LogMessage en la propiedad de CurrentViolations .

El objeto de ValidationContext se pasa a un método subsiguiente de validación. La propiedad de CurrentViolations contiene todos los errores, advertencias, y mensajes que se encontraron hasta ese punto de comprobación de validación actual.

La próxima vez que esa validación inicia, se crea otro objeto de ValidationContext . Que el objeto se pasa a cada método de validación a su vez con errores, advertencias, mensajes y agregado al objeto como se encuentran.

Para obtener más información, vea La validación en los lenguajes específicos de dominio.

Ejemplos

El ejemplo siguiente es un método etiquetado por un atributo que indica que es un método de validación.

El objeto de ValidationContext que se pasa a cada método de validación contiene información sobre el proceso de validación actual. Esta información incluye los errores, las advertencias, los mensajes que acumularon en los métodos de validación que se han ejecutado todavía.

El objeto de ValidationContext tiene métodos que agregan a los errores, las advertencias, y los mensajes, como el método de LogError en el ejemplo siguiente:

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

Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Vea también

Referencia

Microsoft.VisualStudio.Modeling.Validation (Espacio de nombres)