Как вы определяете тип возврата метода, используя ReSharper SDK?
Я пытаюсь написать простой плагин ReSharper 7.1, чтобы изменить тип возвращаемых методов при определенных обстоятельствах.
Я получил свой класс от ElementProblemAnalyzer<IMethodDeclaration>
и реализовал Run
метод следующим образом:
protected override void Run(IMethodDeclaration element, ElementProblemAnalyzerData data, IHighlightingConsumer consumer)
{
consumer.AddHighlighting(new CustomHighlighting(element), element.TypeUsage.GetDocumentRange(), element.GetContainingFile());
}
Это хорошо работает, поскольку выделяет тип возвращаемого значения для каждого метода. Я не могу понять, как проверить, является ли тип возвращаемого значения void
и я не могу изменить тип метода с void
к чему-то еще.
Я вижу, что IMethodDeclaration
интерфейс имеет TypeUsage
и что это пример IPreDefinedType
который в свою очередь реализует IType
, но документация ReSharper SDK не объясняет, как вы можете проверить тип возвращаемого значения метода или изменить тип возвращаемого значения.
1 ответ
Прошло немного времени, и я не знаю, ищите ли вы ответ. Другие могут также найти это полезным. Вы можете использовать что-то вроде следующего:
element.DeclaredElement.ReturnType.GetPresentableName(CSharpLanguage.Instance);
К сожалению, я не совсем знаю, как установить тип возвращаемого значения.