現在、クラスで定義された一連の EntLib 検証ルールを取得しています。ルールは、クライアントに基づいて後で変更されます。
私がやりたいことは、自分のクラスを保持し、特定のクライアントに対してどこかに定義されたさまざまなルール セットを呼び出すことです。
この機能は、コンテンツがローカリゼーション パラメーターに基づいて変化する .resx ファイルに国際化値を格納するのと似ていますが、この場合、定義済みのルールはクライアントに基づいて変化します。
ありがとうございました。
現在、クラスで定義された一連の EntLib 検証ルールを取得しています。ルールは、クライアントに基づいて後で変更されます。
私がやりたいことは、自分のクラスを保持し、特定のクライアントに対してどこかに定義されたさまざまなルール セットを呼び出すことです。
この機能は、コンテンツがローカリゼーション パラメーターに基づいて変化する .resx ファイルに国際化値を格納するのと似ていますが、この場合、定義済みのルールはクライアントに基づいて変化します。
ありがとうございました。
疑問に思う人のために、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")>
...次に、ログインしているクライアントに一致する適切な検証ルールセットを呼び出すだけです。
ああEntLib。