J'ai eu du mal à trouver des exemples sur la façon d'écrire un attribut personnalisé pour valider les paramètres d'une méthode, c'est-à-dire tourner ce formulaire :
public void DoSomething(Client client)
{
if (client.HasAction("do_something"))
{
// ...
}
else
{
throw new RequiredActionException(client, "do_something");
}
}
dans ceci :
public void DoSomething([RequiredAction(Action="some_action")] Client client)
{
// ...
}
D'après ce que je sais, je dois ajouter cet attribut à mon attribut personnalisé, mais je ne sais pas comment accéder au paramètre décoré. Client
:
[AttributeUsageAttribute(AttributeTargets.Parameter)]
public class RequireActionAttribute : System.Attribute
{
public Type Action {get; set;}
public RequireActionAttribute()
{
// .. How do you access the decorated parameter?
Client client = ???
if (!client.HasAction(Action))
{
throw new RequiredActionException(client, Action);
}
}
}