Jak Mogę uzyskać wszystkie klasy w przestrzeni nazw?
Jak mogę pobrać wszystkie klasy w przestrzeni nazw w C#?
63
3 answers
Będziesz musiał to zrobić "wstecz"; wymień wszystkie typy w złożeniu, a następnie sprawdź przestrzeń 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);
}
W przypadku czegokolwiek przed. Net 2.0, gdzie Assembly.GetExecutingAssembly()
nie jest dostępna, będziesz potrzebował małego obejścia, aby uzyskać montaż:
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);
}
115
Author: Fredrik Mörk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-07 03:44:24
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-07 03:44:24
Musisz podać trochę więcej informacji...
Masz na myśli użycie odbicia. Można iterację za pomocą manifestu złożeń i uzyskać listę typów używając System.Reflection.Assembly myAssembly = Assembly.LoadFile("");
myAssembly.ManifestModule.FindTypes()
Jeśli jest tylko w Visual Studio, możesz pobrać listę w oknie intellisense lub otwierając przeglądarkę obiektów (CTRL+W, J)
5
Author: Eoin Campbell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-04 08:34:09
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-04 08:34:09
Z odbiciem można przejść przez wszystkie typy w złożeniu. Typ ma właściwość przestrzeni nazw, której używasz do filtrowania tylko interesującej Cię przestrzeni nazw.
0
Author: Gerrie Schenck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-04 08:32:56
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-04 08:32:56