Я работаю над частью аудита и пытаюсь использовать атрибут для отметки параметров для метода, который должен быть записан в аудите для получения дополнительной информации. Однако по какой-то причине я не могу проверить, существует ли атрибут.Атрибут параметра не отображается
Мой код:
[Audit(AuditType.GetReport)]
public Stream GetReportStream([AuditParameter] Report report)
{
...
}
[AttributeUsage(AttributeTargets.Parameter)]
public class AuditParameterAttribute : Attribute
{
}
И внутри перехватчика, где я пытаюсь получить:
foreach (ParameterInfo param in invocation.Method.GetParameters())
{
var atts = CustomAttributeData.GetCustomAttributes (param);
if (param.IsDefined (typeof(AuditParameterAttribute), false))
{
attributes.Add (param.Name, invocation.Arguments[param.Position].ToString());
}
}
Я начал добавлять на несколько дополнительных звонков, чтобы попытаться получить что-то, чтобы работать; вот почему есть дополнительные var atts
. Переменная invocation
имеет информацию о вызванном методе, и я могу получить объект ParameterInfo, представляющий параметр из него. Но, независимо от того, что я пробовал, я никогда не получаю никаких пользовательских атрибутов.
Что я здесь делаю неправильно?