2010-02-10 2 views
0

В настоящее время у меня есть набор правил проверки EntLib, определенных в моих классах. Затем правила будут изменяться в зависимости от клиента.Несколько сценариев валидации для EntLib - .resx style?

Что бы я хотел сделать, это сохранить мои классы и просто вызвать различные наборы правил, определенные где-то для конкретного клиента.

Функциональность этого метода аналогична сохранению значений интернационализации в файле .resx, где содержимое изменяется на основе параметров локализации, но в этом случае предопределенные правила будут меняться на основе клиента.

Спасибо.

ответ

0

Для тех, кто задается вопросом, учитывая следующее набор правил для параметра 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 

Просто добавив дополнительное правило идентификатор набора будет делать трюк.

<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")> 

... затем просто вызывает соответствующий набор правил проверки, который соответствует клиенту входа в систему.

Ah EntLib.

+0

BTW, может быть опущен, так как это неявный тип композиции. –