Pregunta

He actualmente tiene un conjunto de reglas de validación EntLib definidos en mis clases. Las reglas más adelante cambiar basado en el cliente.

Lo que me gustaría hacer es mantener mis clases, y simplemente llamar a los diferentes conjuntos de reglas definidas en algún lugar para el cliente específico.

La funcionalidad de este es similar al almacenamiento de los valores de internacionalización en un archivo .resx, donde los cambios de contenido en función de parámetros de localización, pero en este caso, las reglas predefinidas podría cambiar en función del cliente.

Gracias.

¿Fue útil?

Solución

Para aquellos que se preguntan, dada la siguiente conjunto de reglas para un parámetro TerminalId:

<ValidatorComposition(CompositionType.And)> _
<NotNullValidator(MessageTemplate:="Terminal id is required.", Ruleset:="Default")> _
<StringLengthValidator(1, 19, MessageTemplate:="Terminal id must be between 1 and 19 digits in length.", Ruleset:="Default")> _
Public Property TerminalId() As String
    Get
        Return _TerminalId
    End Get
    Set(ByVal value As String)
        _TerminalId = value
    End Set
End Property

La simple adición de un identificador de conjunto de reglas adicionales que hacer el truco.

<StringLengthValidator(1, 19, MessageTemplate:="Terminal id must be between 1 and 19 digits in length.", Ruleset:="Client1.Default")>
<StringLengthValidator(3, 10, MessageTemplate:="Terminal id must be between 3 and 10 digits in length.", Ruleset:="Client2.Default")>
<StringLengthValidator(5, 25, MessageTemplate:="Terminal id must be between 5 and 25 digits in length.", Ruleset:="Client3.Default")>

... entonces simplemente llamando el conjunto de reglas de validación adecuada que coincida con la que ha iniciado sesión en el cliente.

Ah EntLib.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top