2017-11-08 3 views
0

질문은 이것이다 :Roslyn에서 다른 클래스에서 사용되는 모든 클래스와 인터페이스를 가져 옵니까?

namespace TestSln 
{ 
    public class AAA 
    { 
     private DDD x; 

     private void func(CCC z) 
     { 
      BBB b = new BBB(); 
      b.z(); 
     } 
    } 
} 

내가 찾고 출력은 이것이다 : 클래스 AAA 사용 "DDD, CCC, BBB"

어떻게 내가 할 수있는 내가 어떤 소스 파일이 Roslyn과 함께 이것을 달성 할 수 있습니까?

P. 전체 솔루션을 읽고이 소스 파일에서 참조되는 클래스에 대한 모든 프로젝트를 검색 할 수 있기를 원합니다.

답변

0

SyntaxWalker 자신을 만들고 Visit()의 모든 노드에 대한 당신의 SemanticModelGetSymbol()를 호출합니다. Set<ISymbol>에 각 기호를 추가하기 만하면 전체 목록을 수집 할 수 있습니다.