Click here to Skip to main content
15,879,184 members
Articles / Programming Languages / C#

Write a Custom Validator for VAB Using the Application Block Software Factory

Rate me:
Please Sign up or sign in to vote.
4.40/5 (12 votes)
26 Jul 2007CPOL12 min read 44.9K   224   23  
This article is a step by step guide on how to write a custom validator using Application Block Software Factory and integrate it in the configuration editor of Enterprise Library.
using System;
using Microsoft.Practices.EnterpriseLibrary.Validation;
using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;

namespace Bursteg.ProvidersLibrary
{
    /// <summary>
    /// Represents a <see cref="PersonIDValidatorAttribute"/>.
    /// </summary>
    [AttributeUsage(AttributeTargets.Property
        | AttributeTargets.Field
        | AttributeTargets.Method
        | AttributeTargets.Parameter,
        AllowMultiple = true,
        Inherited = false)]
    public sealed class PersonIDValidatorAttribute : ValueValidatorAttribute
    {
        private int coutryCode;

        /// <summary>
        /// <para>Initializes a new instance of the <see cref="PersonIDValidatorAttribute"/>.</para>
        /// </summary>
        public PersonIDValidatorAttribute()
        { }

        public PersonIDValidatorAttribute(int country)
        {
            this.coutryCode = country;
        }

        /// <summary>
        /// Creates the <see cref="PersonIDValidator"/> described by the attribute object.
        /// </summary>
        /// <param name="targetType">The type of object that will be validated by the validator.</param>
        /// <remarks>This operation must be overriden by subclasses.</remarks>
        /// <returns>The created <see cref="PersonIDValidator"/>.</returns>
        protected override Validator DoCreateValidator(Type targetType)
        {
            return new PersonIDValidator(this.coutryCode, MessageTemplate, Negated);
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
Israel Israel
Guy Burstein is a senior consultant and lecturer at Advantech Technologies – Microsoft Division, specializing in architecture, design and development of distributed applications.
He is a presenter at conferences and user-group meetings and has delivered seminars, courses and hands-on training for developing distributed applications using latest Microsoft tools and technologies.

Comments and Discussions