2016-06-08 6 views
0

예를 들어, 런타임시에만 실제 클래스 유형이 결정되는 인터페이스 클래스를 선언하고 메소드 호출을 마우스 오른쪽 버튼으로 클릭하고 "구현으로 이동"을 클릭하면 VisualStudio를 사용하여 3을 찾을 수 있습니다 인터페이스를 상속 한 클래스의 구현Roslyn을 사용하여 메소드 구현 얻기

어떻게 Roslyn을 사용하여 메소드의 구현 구문 노드/기호를 얻을 수 있습니까?

답변

0

당신은 SymbolFinder.FindImplementationsAsync을 찾고 있습니다.

+0

감사합니다. 구현이 동일한 솔루션 내의 다른 프로젝트/동일한 솔루션 내에 있지 않은 다른 프로젝트에있는 경우 해당 작업이 가능합니까? – bee3

+0

@ bee3 :해야합니다. 그 방법은 상징에 관한 것입니다. 심볼은 어디에 정의되었는지/어떻게 정의되는지는 신경 쓰지 않습니다. – SLaks

1

code that implements Go To Implementation을 살펴보십시오. SymbolFinder 유형에 대한 재정의/구현/파생 된 유형을 제공하는 여러 개의 공개 API가 있으며 각각은 심볼을 돌려줍니다. 이 기능의 대부분의 코드는 기능에 고유 한 몇 가지 추가 필터링 기능을 사용하여 호출 할 수있는 올바른 방법을 파악하고 있습니다. 예를 들어 추상 멤버가있는 파생 형식이있는 경우 핵심 함수는 해당 메서드를 반환하지만 기능을 위해 의미있는 방식으로 구현되지는 않습니다.

관련 문제