2010-02-10 38 views
0

目前我已经在我的类中定义了一组EntLib验证规则。规则稍后将根据客户端进行更改。EntLib的多个验证方案 - .resx样式?

我想要做的就是保留我的类,并简单地调用为特定客户端定义的不同规则集。

此功能类似于将国际化值存储在.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

顺便说一句,可以省略,因为它是隐式组合类型。 – 2011-01-18 04:25:55