Roslyn Diagnostic Analzyer - подчеркивает только параметр атрибутаC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Roslyn Diagnostic Analzyer - подчеркивает только параметр атрибута

Сообщение Anonymous »

Я создал диагностический анализатор, который сообщает о различных проблемах с пользовательскими атрибутами для свойств. Тем не менее, у меня возникают проблемы с местоположением только аргументов атрибута и/или атрибутов (в зависимости от конкретной диагностики).

Код: Выделить всё

private static bool HasAttribute(SyntaxNodeAnalysisContext context, string attributeName, out PropertyAttributeData data)
{
var propertyDeclarationSyntax = (PropertyDeclarationSyntax)context.Node;

data = new PropertyAttributeData
{
Type = propertyDeclarationSyntax.Type
};

var propertyAttribute = propertyDeclarationSyntax.AttributeLists.FirstOrDefault()
?.GetAttributes(context.Compilation)
?.FirstOrDefault(attr => attr.AttributeClass?.Name == attributeName);

if (propertyAttribute == null)
{
return false;
}

data.AttributeData = propertyAttribute;
data.ConstructorArg1 = propertyAttribute.ConstructorArguments.FirstOrDefault();
if (propertyAttribute.ConstructorArguments.Length > 1)
{
data.ConstructorArg2 = propertyAttribute.ConstructorArguments.Skip(1).FirstOrDefault();
}

return true;
}
< /code>
Тем не менее, это то, где я как бы застрял.  Я использовал context.node.getLocation 
для целей тестирования, но это подчеркивает атрибут и свойство. Я также пытался использовать semanticmodel.getSymbolinfo () и semanticmodel.getDeclaredSymbol () , а также несколько других вещей. Тем не менее, место, которое я получаю, находится либо с начала атрибута до конца файла, либо о нем сообщается о исходном месте атрибута (в отдельной библиотеке).
Как я бы получил местоположение rast атрибут или первый/второй аргумент IT? Любое руководство будет оценено. Tia.

Подробнее здесь: https://stackoverflow.com/questions/793 ... -parameter
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Roslyn Diagnostic Analzyer — подчеркивание только параметра атрибута
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Расположение узла контекста Roslyn Diagnostic Analyser после конца файла
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Расположение узла контекста Roslyn Diagnostic Analyser за концом файла
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Добавьте параметр в метод с Roslyn CodeFixProvider
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Как не запускать и не останавливать поток Oracle 23 JDBC Driver Diagnostic.CLOCK?
    Anonymous » » в форуме JAVA
    0 Ответы
    57 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»