I have two classes:

```
[HasSelfValidation]
class Country : DomainObject
{
    [NotNullValidator]
    [StringLengthValidator(2, 10)]
    public string Name { get; set; }

    [ObjectCollectionValidator(typeof(Region))]
    public List<Region> Regions { get; set; }
}

```

and 

```
[HasSelfValidation]
class Region : DomainObject
{
    [NotNullValidator]
    [ObjectValidator]
    public Country Country { get; set; }

    [NotNullValidator]
    [StringLengthValidator(2, 20)]
    public string Name { get; set; }
}

```

Where DomainObject has method:

```
public virtual ValidationResults Validate()
{
    Validator validator = 
        ValidationFactory.CreateValidator(this.GetType());
    ValidationResults results = new ValidationResults();
    validator.Validate(this, results);
    return results;
}

```

I'm using Microsoft Enterprise Library 4.1 - October 2008/.NET 3.5 SP1/Vista.

If I call `Validate` for a newly created Country object withn null as list of regions, I get a StackOverflow exception. If I remove the [ObjectCollectionValidator(typeof(Region))] for the Country.Regions property, everything works fine. I guess the link Country - Region - Country is the cause of failure. However, I do not want to remove the validation of the Regions collection; neither removal of the [ObjectValidator] from region is an option for me. Is there anything I can do to maintain all these validations attributes, w/o StackOverflow exception?

Thanks,

Lucian