Я определил аспект следующим образом:
Код: Выделить всё
[AttributeUsage(AttributeTargets.Method)]
public class ExceptionReturnValueAttribute : MethodAspect
{
private static readonly DiagnosticDefinition InvalidReturnType = new("MY1023",
Severity.Error,
"{0}"
);
public override void BuildAspect(IAspectBuilder builder)
{
var isReturnTypeValid = IsReturnTypeValid(builder.Target.ReturnType.ToType());
if (!isReturnTypeValid.IsValid)
{
builder.Diagnostics.Report(InvalidReturnType.WithArguments(isReturnTypeValid.Message));
}
}
}
MY1023: MY1023 не был определен в профиле пользователя и был заменен общим диагностическим идентификатором.
Однако я не понимаю почему идентификатор заменяется. Диагностика определена как статическое поле только для чтения, я вызываю ее с помощью builder.Diagnostic.Report, и сообщение правильное, поэтому я не понимаю, почему он говорит, что оно не определено в профиле пользователя и заменяет его собственным кодом LAMA.
Есть ли что-то еще, что мне не хватает или требуется, поскольку это, похоже, все, что должно было быть необходимо в соответствии с их документацией. Любая помощь/руководство будет принята с благодарностью. ТИА.
Подробнее здесь: https://stackoverflow.com/questions/798 ... -correctly
Мобильная версия