Ihre Frage "Wie überprüft man, ob ein String ein Namespace ist" ist nur gültig, wenn Sie in Betracht ziehen, wo Sie nach Namespaces suchen.
Namespaces sind Präfixe für Klassennamen und Klassen sind auf eine Assembly beschränkt. Um zu überprüfen, ob ein Namespace vorhanden ist, müssen Sie entscheiden, welche Assembly Sie durchsehen möchten, um das Vorhandensein des Namespace zu ermitteln.
Sobald Sie entschieden haben, welche Assemblies Sie bereit sind, durchzusehen, können Sie sie für die Existenz eines bestimmten Namespace wie folgt durchlaufen:
%Vor%Versuchen Sie diesen Ansatz:
%Vor% wo CS0234
ist:
Der Name des Typs oder Namespace 'name' nicht in der Klasse oder dem Namespace vorhanden 'Geltungsbereich' (fehlt eine Baugruppe? Referenz?)
Benutzerdefinierte Referenzen hinzufügen:
%Vor%Verwendung:
%Vor%Die CLR hat nicht wirklich ein Konzept von "Namespaces": Sie sind wirklich wenig mehr als eine Namenskonvention. Also gibt es keine API, um "Namespaces auflisten" oder "Namespaces abrufen" oder sogar "alle Typen in diesem Namespace abzurufen".
Das Beste, was Sie tun können, ist, alle geladenen Assemblies durchzulaufen, dann alle exportierten Typen in jeder dieser Assemblies zu durchlaufen und zu prüfen, ob die angegebene Zeichenkette ein "Präfix" für einen dieser Typnamen ist. Ich kann mir vorstellen, dass diese Lösung nicht die schnellste der Welt sein würde, aber auch nicht komplett unbrauchbar wäre.
Es gibt keine Überlegungen zu Namespaces. Die Namespaces definieren den vollständigen Typnamen. Was Sie also tun müssen, ist:
Was Sie brauchen:
Tags und Links .net c# namespaces