如何使用ReSharper SDK确定方法的返回类型?

时间:2013-05-07 23:57:40

标签: c# .net resharper resharper-7.1 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 个答案:

答案 0 :(得分:1)

有点儿,我不知道你是否还在寻找答案。其他人也可能觉得这很有帮助。您可以使用以下内容:

element.DeclaredElement.ReturnType.GetPresentableName(CSharpLanguage.Instance);

不幸的是我不太清楚如何设置返回类型。