2010-01-12 16 views
1

나는 googled하고 누군가가 대답을 발견하고 연결되어 있지만 그것은 죽었어. 특정 파일에서 특정 클래스를 어떻게 찾을 수 있습니까? 내가 찾은 포스터는 그 질문을하고 네임 스페이스에서이를 수행하는 방법을 찾았지만 특정 파일을 찾으려고합니다. 이 질문은 내 other question 대답하는 것입니다하지만 지금은이 생각 나는 대답을 알고 싶습니다.리플렉션을 사용하여 파일의 특정 클래스를 찾으십니까?

+1

텍스트 파일을 의미합니까? 또는 dll? –

답변

2

이와 비슷한?

string path = "INSERT PATH HERE"; 

var assembly = Assembly.LoadFile(path); 
foreach (var type in assembly.GetTypes()) 
{ 
    Debug.WriteLine(type.Name); 

    // do check for type here, depending on how you wish to query 
} 
+0

충분히 닫으십시오. 나는 이것을 위에서 찾아 낸다. var 유형 = typeof (사용자); var 어셈블리 = type.Assembly; var configType = assembly.GetType (type.Namespace + ".MyConfig"); –

0

클래스의 소스 코드를 찾으려면 Visual Studio에서 이동 정의 옵션을 사용하십시오.

일단 코드가 컴파일되면 파일에 정렬되지 않고 이름 공간과 어셈블리에 정렬됩니다. 클래스가 생성 된 소스 파일을 찾을 수 있다면 모든 클래스를 반복하여 찾아야합니다.

1

컴파일 된 어셈블리의 일부로 파일 이름을 저장하는 방법을 잘 모르겠습니다. 다른 옵션은 VS IDE에서 생성 된 PDB 파일을 사용하여 일부 확장자에서 소스 파일을 가져올 수 있다는 것입니다.

다음은 pdb 파일의 일부 내부 구조입니다. 파일을 구문 분석 할 수 있습니다 일단

http://www.informit.com/articles/article.aspx?p=22685

, 당신은 기호를 사용하고 소스 정의를 볼 수 있습니다.

다른 방법도 알고있어 기쁩니다.

관련 문제