반응형
로드 된 모든 어셈블리를 어떻게 나열합니까?
.Net에서 모든 AppDomain에 대해로드 된 모든 어셈블리를 열거하고 싶습니다. 내 프로그램의 AppDomain에 대해 수행하는 것은 충분히 쉽습니다 AppDomain.CurrentDomain.GetAssemblies()
. 어떻게 든 모든 AppDomain에 액세스해야합니까? 아니면 이미이를 수행하는 도구가 있습니까?
Visual Studio 사용
- 프로세스에 디버거 연결 (예 : 디버깅으로 시작 또는 디버그> 프로세스에 연결)
- 디버깅하는 동안 모듈 창을 표시합니다 (디버그> Windows> 모듈).
이는 각 어셈블리, 앱 도메인에 대한 세부 정보를 제공하며 심볼을로드하는 몇 가지 옵션 (예 : 디버그 정보가 포함 된 pdb 파일)이 있습니다.
Process Explorer 사용
외부 도구가 필요한 경우 Process Explorer (Microsoft에서 게시 한 프리웨어)를 사용할 수 있습니다.
프로세스를 클릭하면 사용 된 모든 어셈블리 목록이 표시됩니다. 이 도구는 파일 핸들 등과 같은 다른 정보를 보여주기 때문에 꽤 좋습니다.
프로그래밍 방식
그것을 수행하는 방법을 설명하는 이 SO 질문을 확인하십시오 .
여기에 내가 끝낸 것입니다. 모든 속성과 메서드의 목록이며 각 메서드에 대한 모든 매개 변수를 나열했습니다. 나는 모든 가치를 얻는 데 성공하지 못했습니다.
foreach(System.Reflection.AssemblyName an in System.Reflection.Assembly.GetExecutingAssembly().GetReferencedAssemblies()){
System.Reflection.Assembly asm = System.Reflection.Assembly.Load(an.ToString());
foreach(Type type in asm.GetTypes()){
//PROPERTIES
foreach (System.Reflection.PropertyInfo property in type.GetProperties()){
if (property.CanRead){
Response.Write("<br>" + an.ToString() + "." + type.ToString() + "." + property.Name);
}
}
//METHODS
var methods = type.GetMethods();
foreach (System.Reflection.MethodInfo method in methods){
Response.Write("<br><b>" + an.ToString() + "." + type.ToString() + "." + method.Name + "</b>");
foreach (System.Reflection.ParameterInfo param in method.GetParameters())
{
Response.Write("<br><i>Param=" + param.Name.ToString());
Response.Write("<br> Type=" + param.ParameterType.ToString());
Response.Write("<br> Position=" + param.Position.ToString());
Response.Write("<br> Optional=" + param.IsOptional.ToString() + "</i>");
}
}
}
}
참고 URL : https://stackoverflow.com/questions/458362/how-do-i-list-all-loaded-assemblies
반응형
'developer tip' 카테고리의 다른 글
줄거리 파이썬 : 완전 무료? (0) | 2020.08.27 |
---|---|
DOM에서 React.render ()를 여러 번 사용해도 괜찮습니까? (0) | 2020.08.27 |
자바 리플렉션-setAccessible (true)의 영향 (0) | 2020.08.27 |
Python의 sys.path는 어디에서 초기화됩니까? (0) | 2020.08.27 |
사용자의 시간대를 무시하고 Date ()가 특정 시간대를 사용하도록하는 방법 (0) | 2020.08.27 |