Property Comparison Validator
Retired Content |
---|
This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |
The latest Enterprise Library information can be found at the Enterprise Library site. |
Class Name: PropertyComparisonValidator
Attribute Name: PropertyComparisonAttribute
Configuration tool name: Property Comparison Validator
Description
This validator compares the value to be checked with the value of a property.
Properties
The following table lists the Property Comparison Validator properties.
Property |
Description |
---|---|
ComparisonOperator |
This property determines how the two properties are compared. The possible comparisons are Equal, NotEqual, GreaterThan, GreaterThanEqual, LessThan, and LessThanEqual. |
MessageTemplate |
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 |
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 MessageTemplateResourceTypeName value. If you include both a MessageTemplate value and a MessageTemeplateResourceName value, the MessageTemplate value takes precedence. |
MessageTemplateResourceTypeName |
The resource type for the template you want to use. If you specify a MessageTemplateResourceName value, you must specify this value. |
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. |
PropertyToCompare |
This property is a the name of the property to compare |
Tag |
This property is a user-supplied string. Typically, it is used to sort or categorize validation results. |
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 Property Comparison 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 value against which the current value is being compared. |
{4} |
The name of the property against which the current value is being compared. |
{5} |
The operator being used for comparison (Equal, NotEqual, GreaterThan, GreaterThanEqual, LessThan, LessThanEqual). |
Example
The following example shows how to use the validator with attributes to check that, for an AuctionItem object, the current bid is greater than or equal to the minimum bid.
public class AuctionItem
{
public double MinimimumBid
{
get
{
return minimumBid;
}
}
[PropertyComparisonValidator("MinimumBid", ComparisonOperator.GreaterThanEqual)]
public double CurrentBid
{
get
{
return currentBid;
}
}
// ...
}
'Usage
Public Class AuctionItem
ReadOnly Property MinimumBid(ByVal _minimumBid As Double)
Get
Return _minimumBid
End Get
End Property
<PropertyComparisonValidator("MinimumBid", ComparisonOperator.GreaterThanEqual)> _
ReadOnly Property CurrentBid(ByVal _currentBid As Double)
Get
Return _currentBid
End Get
End Property
' ...
End Class