Utiliser la réflexion pour obtenir l'attribut d'une propriété via la méthode dite de l'incubateur

Note: Ceci est suivi d'une réponse sur un question précédente.

Je suis la décoration d'une propriété de définition de la avec un Attribut appelé TestMaxStringLength qui est utilisé dans la méthode appelée à partir de la définition pour la validation.

Le bien est actuellement ressemble à ceci:

public string CompanyName
{
    get
    {
        return this._CompanyName;
    }
    [TestMaxStringLength(50)]
    set
    {
        this.ValidateProperty(value);
        this._CompanyName = value;
    }
}

Mais je préférerais qu'il ressemble à ceci:

[TestMaxStringLength(50)]
public string CompanyName
{
    get
    {
        return this._CompanyName;
    }
    set
    {
        this.ValidateProperty(value);
        this._CompanyName = value;
    }
}

Le code pour ValidateProperty qui est responsable de la recherche les attributs de l'incubateur est:

private void ValidateProperty(string value)
{
    var attributes = 
       new StackTrace()
           .GetFrame(1)
           .GetMethod()
           .GetCustomAttributes(typeof(TestMaxStringLength), true);
    //Use the attributes to check the length, throw an exception, etc.
}

Comment puis-je changer la ValidateProperty code pour les attributs sur la propriété au lieu de la la méthode de jeu?