Finden abgeleitete Arten eines angegebenen Typs
In der Programmierung müssen häufig alle abgeleiteten Arten eines bestimmten Basistyps bestimmen. Traditionell wurde dies durch mühsame Techniken wie das Iterieren aller Typen in geladenen Assemblys und die manuelle Überprüfung der Zuordnungsfähigkeit zum Zieltyp erreicht. Der folgende Code -Snippet bietet eine unkomplizierte und leistungsfähige Möglichkeit, diese Aufgabe zu erfüllen:
var listofDevivedTypes = (( Aus DomainAsembly in appdomain.currentdomain.getassemblies () Aus DomainAsembly -Typ.gettypes () wobei typeof (basetypename). Wählen Sie Typ) .toArray ();
var listOfDerivedTypes = ( from domainAssembly in AppDomain.CurrentDomain.GetAssemblies() from type in domainAssembly.GetTypes() where typeof(BaseTypeName).IsAssignableFrom(type) select type).ToArray();Alternative Fluent -Syntax:
Der Linq -Ausdruck kann auch in einem fließenden Stil für die verstärkte Lesbarkeit geschrieben werden:
var listofivedTypes = Applyain.curent.curentdomin. .SelectMany (DomainAsembly => DomainAssembly.gettTypes ()) .Wo (Typ => Typof (Basetypename) .IsSignable von (Typ))) .ToArray();
var listOfDerivedTypes = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(domainAssembly => domainAssembly.GetTypes()) .Where(type => typeof(BaseTypeName).IsAssignableFrom(type)) .ToArray();Customizations:
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3