2011-12-18 1 views
2

C# 언어에 대한 자동 완성 편집기를 수행하고 있으며 모든 단어/메소드/네임 스페이스/소유권을 가져올 필요가 있습니다. C#에서. Google에서 유용한 것을 찾지 못했습니다. 또한 리플렉션을 시도했지만 System 또는 다른 네임 스페이스 다음에 네임 스페이스와 같은 모든 항목을 가져올 수 없습니다.어디서 어떻게 자동 완성을위한 C# 예약어/메소드/네임 스페이스/전체 목록을 얻을 수 있습니까?

인터넷에이 모든 사전이 있습니까? 아니면 리플렉션으로이를 수행 할 수있는 방법이 있습니까?

예 : 사용자는 시스템을 입력하고 있습니다.

자동 완성 기능은 시스템을 네임 스페이스로 발견하고 그 안에 모든 유형/메소드 및 네임 스페이스를 표시합니다.

또는 사용자가 비트 맵을 입력됩니다 (I 루트 유형으로 비트 맵을 찾을 수 없습니다이라면 내가 XXX.YYY.Bitmap처럼 사용 XXX.YYY의 모든 조합을 시도합니다 ...)

감사합니다

추신 나에 대해 이미 알고 있기 때문에이 MSDN을 권장하지 않으며 MSDN의 모든 정보를 구문 분석하여 데이터베이스에 저장하기 때문에 최후의 최악의 옵션이 될 것입니다.

+1

.NET의 C# 키워드와 수많은 라이브러리 집합 간에는 차이가 있습니다. 아마도 둘 다 검색해야 할 것입니다. –

답변

0

.NET FrameworkC# language 모두에 대해 MSDN 설명서를 사용해 보셨습니까? 이것은 "인터넷에서이 모든 것을 가진 디렉토리"에 가장 근접 할 것입니다.

또한 C# language spec을 열람 할 수 있습니다.

+0

실제로 msdn에 대한 파서를 만들고이 모든 것을 데이터베이스 (모든 키워드)에 저장하려고 생각하고있었습니다. 그러나이 작업을 수행하는 간단한 방법 (리플렉션을 통해)이 있거나 여기에 지루한 파서를 수행하기 전에 모든 키워드가 포함 된 데이터베이스가 있는지 여기에서 물어보기로했습니다. – Spider

2

@Steve Wellens의 의견에 따르면 C#과 .NET 유형 이름에는 차이가 있습니다. C 번호에 대한 지식을 얻는

  1. - - 편집기 등의 C# 키워드, 이것은 @Cody 회색의 대답에 따라의 C# language spec에서 찾을 수 있습니다에 대해 알 수 있습니다 : 당신은 매우 다른 두 가지 처리하는 문제가있다. 편집중인 특정 파일의 컨텍스트에 따라 다르지 않습니다 (이전 버전의 C#에 대한 정보를 작성해야 할 경우 이전 버전의 C#으로 제한 할 수있는 옵션을 편집기에 부여하지 않는 한)).

  2. 현재 편집 컨텍스트에서 사용할 수있는 유형에 대한 지식이 있습니다. 이를 위해서는 현재 파일의 using 문에 선언 된 네임 스페이스와 현재 파일이 포함 된 프로젝트에서 참조한 라이브러리가 무엇인지 알아야합니다. 정보의 양이 너무 많아 지속적으로 변화하기 때문에 모든 단일 라이브러리에 대해이 모든 정보를 전 세계적으로 찾아내는 데는 아무런 포인트가 없습니다. 아마도 GAC에서 사용할 수있는 모든 유형 이름에 대한 지식을 축적 할 수 있습니다. 부분 typename의 경우. Bitmap의 경우 간단한 구현은 파일에 포함 된 using 문을 사용하여 현재 파일이 포함 된 프로젝트에서 참조하는 관련 어셈블리를 검사하여 어떤 형식 이름이 참조되는지 확인하려고합니다 (충돌이 발생할 수 있고 사용자 해결이 필요합니다. 예 : 접두사 실제 네임 스페이스의 일부 요소가있는 부분 형식 이름). 이것이 Visual Studio 편집기의 작동 방식입니다. 더 많은 구현을 수행하면 어셈블리가 현재 파일과 GAC에 포함 된 모든 프로젝트를 포함하여 참조되며 필요한 경우 형식 이름에 전체 이름 공간을 추가하거나 using 문을 추가 할 것을 제안합니다. 이것은 Resharper가 작동하는 방법입니다.

+0

실제로는 런타임 컴파일러이며 이미지에 대한 신속한 작업을 위해 하나 또는 두 개의 참조 (System.Core) 만 있습니다. 나는 MSDN에서 데이터베이스를 만들려고 이미 생각하고 있었지만 각 유형/네임 스페이스/메서드에 대한 웹 페이지 파서를 만드는 지루한 작업을 생각하고있었습니다. 그래서 누군가가 이미 모든 기존 데이터베이스를 이미 알고 있는지 물었습니다. C# 자동 완성을위한 정보. – Spider

관련 문제