Chciałbym wyprowadzić (programowo - C #) listę wszystkich klas w moim zestawie.
Wszelkie wskazówki lub przykładowy kod, jak to zrobić? Odbicie?
Odpowiedzi:
Użyj Assembly.GetTypes
. Na przykład:
Assembly mscorlib = typeof(string).Assembly;
foreach (Type type in mscorlib.GetTypes())
{
Console.WriteLine(type.FullName);
}
Chciałbym tylko dodać do przykładu Jona. Aby uzyskać odniesienie do własnego zespołu, możesz użyć:
Assembly myAssembly = Assembly.GetExecutingAssembly();
System.Reflection
przestrzeń nazw.
Jeśli chcesz zbadać zestaw, do którego nie masz odniesienia, możesz użyć jednego z następujących:
Assembly assembly = Assembly.ReflectionOnlyLoad(fullAssemblyName);
Assembly assembly = Assembly.ReflectionOnlyLoadFrom(fileName);
Jeśli zamierzasz utworzyć instancję swojego typu po jego znalezieniu:
Assembly assembly = Assembly.Load(fullAssemblyName);
Assembly assembly = Assembly.LoadFrom(fileName);
Zobacz dokumentację klasy Assembly, aby uzyskać więcej informacji.
Gdy już masz odniesienie do Assembly
obiektu, możesz użyć tego , co assembly.GetTypes()
już zademonstrował Jon.
typeof
z typem, który znasz, znajduje się w tym zestawie, a następnie Assembly
właściwość, jak w moim przykładzie.