È possibile verificare se un tipo fa parte di uno spazio dei nomi senza utilizzare stringhe harcoded?Verificare se un tipo appartiene a uno spazio dei nomi senza stringhe codificate
sto cercando di fare qualcosa di simile:
Type type = typeof(System.Data.Constraint);
if(type.Namespace == System.Data.ToString())
{...}
o
Type type = typeof(System.Data.Constraint);
if(type.Namespace == System.Data)
{...}
per evitare
Type type = typeof(System.Data.Constraint);
if(type.Namespace == "System.Data")
{...}
Questi esempi non si compila, ma dovrebbe dare un'idea di ciò che Sto cercando di ottenere.
Non riesco a utilizzare nameof(System.Data)
perché restituisce solo "Data"
.
Vorrei trovare un modo per verificare se una classe se parte di uno spazio dei nomi senza la necessità di avere tale spazio dei nomi in una stringa.
L'unica cosa che viene in mente è qualcosa di simile e String.Join (".", nameof (System), nameof (System.Data)). Brutto ma ancora fare quello che vuoi :) – Evk
Qual è la differenza tra l'hardcoding di una stringa e (eventualmente) l'hardcoding di uno spazio dei nomi? –
Anche se sono interessato perché non esiste una cosa come una classe 'NamespaceInfo' nella riflessione. Non capisco appieno perché ... hai bisogno di questo qui? Perché nessuna corda? Da dove prendi le informazioni che vuoi confrontare con 'type.Namespace'? Se è noto al momento della compilazione, perché nessuna stringa? –