Ist es möglich, zu überprüfen, ob ein Typ Teil eines Namespace ist, ohne harcodierte Strings zu verwenden?Prüfen, ob ein Typ zu einem Namespace ohne hardcoded Strings gehört
Ich versuche, so etwas wie zu tun:
Type type = typeof(System.Data.Constraint);
if(type.Namespace == System.Data.ToString())
{...}
oder
Type type = typeof(System.Data.Constraint);
if(type.Namespace == System.Data)
{...}
Type type = typeof(System.Data.Constraint);
if(type.Namespace == "System.Data")
{...}
Diese Beispiele kompilieren nicht zu vermeiden, aber sollte eine Vorstellung davon geben, was Ich versuche es zu erreichen.
Ich kann nameof(System.Data)
nicht verwenden, weil es nur "Data"
zurückgibt.
Ich würde gerne einen Weg finden, um zu überprüfen, ob eine Klasse, wenn Teil eines Namespace ohne den Namespace in einer Zeichenfolge haben.
Nur etwas, das in den Sinn kommt, ist etwas like e String.Join (".", Name von (System), Name von (System.Data)). Hässlich, aber immer noch tun, was Sie wollen :) – Evk
Was ist der Unterschied zwischen Hardcoding eine Zeichenfolge und (schließlich) Hardcoding ein Namespace? –
Obwohl ich interessiert bin, warum es so etwas wie eine 'NamespaceInfo'-Klasse in der Reflexion nicht gibt. Ich verstehe nicht ganz, warum du das hier brauchst? Warum keine Schnur? Woher bekommen Sie die Informationen, die Sie mit "type.Namespace" vergleichen möchten? Wenn es zur Kompilierzeit bekannt ist, warum keine Zeichenfolge? –