반응형
네임 스페이스 내의 모든 클래스를 얻으려면 어떻게해야합니까?
C #에서 네임 스페이스 내의 모든 클래스를 가져 오려면 어떻게해야합니까?
당신은 그것을 "뒤로"해야 할 것입니다; 어셈블리의 모든 형식을 나열한 다음 각 형식의 네임 스페이스를 확인합니다.
using System.Reflection;
private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace)
{
return
assembly.GetTypes()
.Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal))
.ToArray();
}
사용 예 :
Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "MyNamespace");
for (int i = 0; i < typelist.Length; i++)
{
Console.WriteLine(typelist[i].Name);
}
Assembly.GetExecutingAssembly()
사용할 수없는 .Net 2.0 이전의 경우 어셈블리를 가져 오려면 작은 해결 방법이 필요합니다.
Assembly myAssembly = typeof(<Namespace>.<someClass>).GetTypeInfo().Assembly;
Type[] typelist = GetTypesInNamespace(myAssembly, "<Namespace>");
for (int i = 0; i < typelist.Length; i++)
{
Console.WriteLine(typelist[i].Name);
}
좀 더 많은 정보를 제공해야합니다 ...
리플렉션을 사용한다는 뜻입니까? 어셈블리 매니페스트를 반복하고 다음을 사용하여 형식 목록을 가져올 수 있습니다.
System.Reflection.Assembly myAssembly = Assembly.LoadFile("");
myAssembly.ManifestModule.FindTypes()
Visual Studio에만있는 경우 인텔리 센스 창에서 목록을 가져 오거나 개체 브라우저 (CTRL + W, J)를 열어서 가져올 수 있습니다.
Reflection을 사용하면 어셈블리의 모든 유형을 반복합니다. 유형에는 관심있는 네임 스페이스 만 필터링하는 데 사용하는 Namespace 속성이 있습니다.
참고 URL : https://stackoverflow.com/questions/949246/how-can-i-get-all-classes-within-a-namespace
반응형
'Program Tip' 카테고리의 다른 글
React.js-다시 렌더링 할 때 입력 포커스가 손실 됨 (0) | 2020.10.29 |
---|---|
Java에서 Temp 파일을 만드는 안전한 방법은 무엇입니까? (0) | 2020.10.29 |
apt 저장소를 신뢰하는 방법 : Debian apt-get 업데이트 오류 공개 키를 사용할 수 없습니다 : NO_PUBKEY (0) | 2020.10.29 |
인스턴스 이니셜 라이저는 생성자와 어떻게 다릅니 까? (0) | 2020.10.29 |
fread는 실제로 어떻게 작동합니까? (0) | 2020.10.29 |