Ich habe eine Schnittstelle, die einige Methoden mit Attributen definiert. Auf diese Attribute muss von der aufrufenden Methode zugegriffen werden, aber die Methode, die ich habe, zieht die Attribute nicht aus der Schnittstelle. Was vermisse ich?Attribute auf einer Schnittstelle
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;
}
}
Nur ein Häkchen, Sie haben das entsprechende Flag auf Ihrem Attribut gesetzt, damit es vererbt werden kann, nicht wahr? –