I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Du kan enten loade den aktualle assembly, eller fra en fil. Assembly a = Assembly.GetExecutingAssembly(); eller Assembly a = Assembly.LoadFile(@"c:\myAssembly.dll");
Og så kan du gennemløbe alle typerne: foreach (Type t in a.GetTypes()) { if (t.IsClass && t.BaseType.Name == "myBase") { //Nedarver fra myBase } }
Simpelt eksempel til inspiration: Kigger i den assembly, typen er defineret i - alle typer defineret gås igennem, og dem der arver fra A (IsSubClassOf) skrives ud. using System;
namespace ReflectionTest { public class A { } public class B : A { } public class C : A { } public class D { }
class Program { static void Main(string[] args) { Type baseType = typeof(A); foreach( Type t in baseType.Assembly.GetTypes()) { if (t.IsSubclassOf(baseType)) Console.WriteLine(t.FullName); } } } }
Så vidt jeg husker du'r IsSubClassOf ikke, hvis baseType er et interface - men hvis du har behov for dette, kan du bruge GetInterfaces til at få fat i de interfaces, en type implementerer.
Nej det havde jeg ikke da du ikke havde smidt en referrence her ;)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.