2013-05-07 2 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을 가지고보고, 그것은 다시 IType를 구현 IPreDefinedType의 인스턴스가 있다고하지만, ReSharper에서 SDK 문서는 메소드의 리턴 타입을 확인하거나 방법을 변경하는 방법을 설명하지 않습니다 리턴 유형.

+0

아직도 실제입니까? –

+0

@DmitryOsinovskiy 당분간은 그 아이디어를 포기했지만 그래도 나는 아직도 대답에 관심이 있습니다. –

답변

1

아직 해답을 찾고 계신지 모르겠다. 다른 사람들도 도움이 될 것입니다. 다음과 같이 사용할 수 있습니다.

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

불행히도 반환 유형을 설정하는 방법을 알지 못합니다.