J'ai une interface qui définit certaines méthodes avec des attributs. Ces attributs doivent être accessibles à partir de la méthode appelante, mais la méthode que j'ai ne tire pas les attributs de l'interface. Qu'est-ce que je rate?Attributs sur une interface
public class SomeClass: ISomeInterface
{
MyAttribute GetAttribute()
{
StackTrace stackTrace = new StackTrace();
StackFrame stackFrame = stackTrace.GetFrame(1);
MethodBase methodBase = stackFrame.GetMethod();
object[] attributes = methodBase.GetCustomAttributes(typeof(MyAttribute), true);
if (attributes.Count() == 0)
throw new Exception("could not find MyAttribute defined for " + methodBase.Name);
return attributes[0] as MyAttribute;
}
void DoSomething()
{
MyAttribute ma = GetAttribute();
string s = ma.SomeProperty;
}
}
Juste une vérification, vous avez placé le drapeau approprié sur votre attribut pour lui permettre d'être hérité n'est-ce pas? –