Contains Characters Validator

Microsoft Enterprise Library 5.0

DropDown image DropDownHover image Collapse image Expand image CollapseAll image ExpandAll image Copy image CopyHover image

Class Name: ContainsCharactersValidator

Attribute Name: ContainsCharactersValidatorAttribute

Configuration tool name: Contains Characters Validator

Description

This validator checks that an arbitrary string, such as a string entered by a user in a Web form, contains any or all of the characters that are specified by the CharacterSet property.

Properties

The following table lists the Contains Characters validator properties. The actual property names displayed in the configuration tools are shown in the description.

Property

Description

CharacterSet

Character Set - This property defines the set of characters that must occur in the string you will validate.

ContainsCharacters

Contains Characters -This property determines whether the validator checks for Any of the characters defined in CharacterSet or for All of the characters. The default is Any.

MessageTemplate

Message Template - This property is a string containing template tokens that the validator replaces with values as it validates the target. Typically, it describes the validation result.

MessageTemplateResourceName

Template Resource Name - If you do not want to use the MessageTemplate property to hard-code a message template (perhaps for internationalization), you can use a template stored in the application resources. You must also specify a MessageTemplateResourceType value. If you include both a MessageTemplate value and a MessageTemeplateResourceName value, the MessageTemplate value takes precedence.

MessageTemplateResourceType

Template Resource Type - The resource type for the template you want to use. If you specify a MessageTemplateResourceName value, you must specify this value.

Name

Name – The name to use for this validator.

Negated

Negated - This is a Boolean property. If it is set to True, it changes the validator's behavior so that it will fail if the condition is met instead of when it is not met. The default is False.

Tag

Tag - This property is a user-supplied string. Typically, it is used to sort or categorize validation results.

TypeName

Type Name – The fully qualified name of the type configuration element. This property cannot be edited.

Message Template Tokens

If the message template contains tokens (for example, "{0}"), the validator will replace these tokens with values when the ValidationResult is created. The following table lists the tokens that are supported by the contains characters validator.

Token

Meaning

{0}

This token represents the value of the object that is being validated. Although it can be useful to show the original value as a part of the validation message, you must be careful to avoid injection attacks by escaping any characters that can be used to attack the system that conveys the message to the user.

{1}

This token represents the key of the object that is being validated. When the validator is attached to a member of a type such as a property or a field, the key is set to the member name. When the validator is attached to an object, the key is null and the token is replaced by an empty string.

{2}

This token represents the tag that is specified on the validator instance. If no tag is supplied, the token is replaced by an empty string.

{3}

The list of characters configured for this validator instance.

{4}

The type of character search (Any or All) configured for this validator instance.

Example

The following code example uses attributes to ensure that the product code contains the character "f", the character "s" and the character "p".

C# Copy Code
public class Product
{
  [ContainsCharactersValidator("fsp", ContainsCharacters.All)]
  public string ProductCode
  {
    get
    {
      return _productCode;
    }
  }
  // ...
}
Visual Basic Copy Code
Public Class Product
  <ContainsCharactersValidator("fsp", ContainsCharacters.All)> _
  ReadOnly Property ProductCode(ByVal _productCode As String)
    Get
      Return _productCode
    End Get
  End Property
  ' ...
End Class