Votre question: « Comment vérifier si la chaîne est un espace de nom » est uniquement valable si l'on considère où vous vérifiez pour espaces de noms.
Les espaces de noms sont des préfixes aux noms de classes et les classes sont étendues à un assembly. Pour vérifier si un espace de noms existe, vous devez décider quels assemblages vous êtes prêt à rechercher pour trouver l'existence de l'espace de noms.
Une fois que vous avez décidé que les assemblées que vous êtes prêt à regarder à travers, vous pouvez itérer à travers eux pour l'existence d'un espace de nom particulier comme ceci:
public bool NamespaceExists(IEnumerable<Assembly> assemblies, string ns)
{
foreach(Assembly assembly in assemblies)
{
if(assembly.GetTypes().Any(type => type.Namespace == ns))
return true;
}
return false;
}
BTW, vous ne pouvez pas utiliser mot-clé réservé 'namespace' comme un nom de variable;) – abatishchev
Juste pour l'exactitude, vous devriez @ -ize le paramètre d'espace de noms, l'espace de noms est un mot-clé C# :) – Marek
Oh, si pointilleux! Je suis assez sûr que la réponse est lisible sans, mais une édition est à vous. :) –