Jak mogę uzyskać wszystkie klasy w przestrzeni nazw w C#?Jak mogę uzyskać wszystkie klasy w przestrzeni nazw?
Odpowiedz
Będziesz musiał to zrobić "wstecz"; listy wszystkich typów w zespole, a następnie sprawdzanie nazw każdego typu:
using System.Reflection;
private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace)
{
return
assembly.GetTypes()
.Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal))
.ToArray();
}
Przykład użycia:
Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "MyNamespace");
for (int i = 0; i < typelist.Length; i++)
{
Console.WriteLine(typelist[i].Name);
}
Do niczego przed .NET 2.0 gdzie Assembly.GetExecutingAssembly()
nie jest dostępny, będzie wymagać niewielkiego obejścia, aby zmontować:
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);
}
.Where (t => String.Equals (t.Namespace, nameSpace, StringComparison.Ordinal) – abatishchev
Trzymaj pamiętaj, że Assembly! = namespace - niektóre przestrzenie nazw są rozmieszczone na wielu złożeniach. – Bevan
i dlaczego nie zwrócić tylko IEnumerable
Przy odbiciu pętla przechodzi przez wszystkie typy w zespole. Typ ma właściwość Namesepace którego używasz do filtrowania tylko nazw, które Cię interesują.
Musisz dostarczyć trochę więcej informacji ...
Czy to znaczy za pomocą refleksji. Można iterację an zespołów Oczywista i uzyskać listę typów używając
System.Reflection.Assembly myAssembly = Assembly.LoadFile("");
myAssembly.ManifestModule.FindTypes()
Jeśli to tylko w Visual Studio, można po prostu listę w oknie intellisense lub otwierając przeglądarkę Object (CTRL + W , J)
- 1. Przestrzeń nazw PHP - rozwiązanie obejmujące wszystkie klasy w przestrzeni nazw
- 2. Jak uzyskać wszystkie nazwy klas w przestrzeni nazw w Ruby?
- 3. PHP, jak zaimportować wszystkie klasy z innej przestrzeni nazw
- 4. Czy mogę uzyskać metadane dla przestrzeni nazw?
- 5. Jak mogę uzyskać wszystkie odziedziczone klasy klasy bazowej?
- 6. nie jest nazwą klasy lub przestrzeni nazw
- 7. clang bug? przestrzeni nazw klasy szablon przyjaciel
- 8. Funkcje klasy prywatnej a Funkcje w bezimiennej przestrzeni nazw
- 9. Prywatna klasa w przestrzeni nazw
- 10. Jak uzyskać interaktywną konsolę Python w aktualnej przestrzeni nazw?
- 11. Jak uzyskać operator aliasu przestrzeni nazw :: do pracy w C#?
- 12. Stała przestrzeni nazw w C#
- 13. Python: ElementTree, uzyskać ciąg przestrzeni nazw elementu
- 14. Jak uzyskać wszystkie klasy sun.font w jdk9
- 15. Odbicie w przestrzeni nazw PHP
- 16. Jak mogę wymagać wielu pod-przestrzeni nazw w clojure?
- 17. Jak importować przestrzeni nazw klasy maszynopis kątowej 2
- 18. Nie mogę znaleźć przestrzeni nazw System.Web.UI.DataVisualization.Charting
- 19. Jak rozwiązać kolizję przestrzeni nazw modelu szyny
- 20. Najlepsze praktyki: używanie przestrzeni nazw lub ponowne otwieranie przestrzeni nazw?
- 21. Czy istnieje krótszy sposób przekazywania deklaracji klasy w przestrzeni nazw?
- 22. Niejednoznaczne odwołanie w przestrzeni nazw
- 23. Utworzenie wystąpienia nowej klasy z nazwą zmiennej w przestrzeni nazw
- 24. Uzyskiwanie klasy FullName (w tym przestrzeni nazw) z Roslyn ClassDeclarationSyntax
- 25. Używanie klasy w przestrzeni nazw o tej samej nazwie?
- 26. Testy grup według klasy i przestrzeni nazw w Eksploratorze testów
- 27. jak używać przestrzeni nazw Yii
- 28. Jak tłumaczyć model w przestrzeni nazw?
- 29. Jak uzyskać wszystkie nazwy właściwości klasy Groovy?
- 30. Używanie przestrzeni nazw zamiast klasy statycznej w C++?
możliwy duplikat [Wydobywa wszystkie klasy o określonej nazwie space] (http://stackoverflow.com/questions/343869/taking-out-all-classes-of-a-specific-namespace) – nawfal
Możliwy duplikat [Pobieranie wszystkich typów w przestrzeni nazw za pomocą refleksji] (https: // stackoverflow.com/questions/79693/getting-all-types-in-a-namespace-via- reflection) – Liam