C# Language Obtenir un type par nom avec un espace de noms


Exemple

Pour ce faire, vous avez besoin d'une référence à l'assembly qui contient le type. Si vous avez un autre type disponible que vous savez être dans le même assemblage que celui que vous voulez, vous pouvez le faire:

typeof(KnownType).Assembly.GetType(typeName);
  • typeName est le nom du type que vous recherchez (y compris l'espace de noms) et KnownType est le type que vous connaissez dans le même assembly.

Moins efficace mais plus général est comme suit:

Type t = null;
foreach (Assembly ass in AppDomain.CurrentDomain.GetAssemblies())
{
    if (ass.FullName.StartsWith("System."))
        continue;
    t = ass.GetType(typeName);
    if (t != null)
        break;
}

Notez la coche pour exclure les assemblys de noms de systèmes d'analyse afin d'accélérer la recherche. Si votre type peut effectivement être un type CLR, vous devrez supprimer ces deux lignes.

Si vous avez le nom de type entièrement assemblé, y compris l'assemblage, vous pouvez simplement l'obtenir avec

Type.GetType(fullyQualifiedName);