2013-05-07 93 views
1

我正試圖編寫一個簡單的ReSharper 7.1插件來改變某些情況下返回類型的方法。如何確定使用ReSharper SDK的方法的返回類型?

我得出我的類從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文檔並沒有解釋如何檢查方法的返回類型,也不怎麼改返回類型。

+0

這是真的嗎? – 2013-06-16 12:25:46

+0

@DmitryOsinovskiy我暫時擱置了這個想法,但是我仍然對答案感興趣。 – 2013-06-17 14:51:37

回答

1

有點過了,我不知道你是否還在尋找答案。其他人也可能會覺得這很有幫助。您可以使用類似以下內容:

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

不幸的是,我不太清楚如何設置返回類型。