Compartir a través de


Compilation.GetTypeByMetadataName(String) Método

Definición

Obtiene el tipo dentro del ensamblado de la compilación y todos los ensamblados a los que se hace referencia (excepto aquellos a los que solo se puede hacer referencia a través de un alias extern) mediante su nombre de metadatos CLR canónico. Esta búsqueda sigue el orden siguiente:

  1. Si el tipo se encuentra en el ensamblado de la compilación, se devuelve ese tipo.
  2. A continuación, se busca en la biblioteca principal (la biblioteca que define System.Object y no tiene referencias de ensamblado). Si el tipo se encuentra allí, se devuelve ese tipo.
  3. Por último, se busca en todos los ensamblados no extern a los que se hace referencia. Si se encuentra uno y solo un tipo que coincida con el nombre de metadatos proporcionado, se devuelve ese tipo único. La accesibilidad se omite para esta comprobación.
public:
 Microsoft::CodeAnalysis::INamedTypeSymbol ^ GetTypeByMetadataName(System::String ^ fullyQualifiedMetadataName);
public Microsoft.CodeAnalysis.INamedTypeSymbol GetTypeByMetadataName (string fullyQualifiedMetadataName);
public Microsoft.CodeAnalysis.INamedTypeSymbol? GetTypeByMetadataName (string fullyQualifiedMetadataName);
member this.GetTypeByMetadataName : string -> Microsoft.CodeAnalysis.INamedTypeSymbol
Public Function GetTypeByMetadataName (fullyQualifiedMetadataName As String) As INamedTypeSymbol

Parámetros

fullyQualifiedMetadataName
String

Devoluciones

Null si no se encuentra el tipo o se produjo una ambigüedad durante la búsqueda.

Comentarios

Puesto que VB no tiene el concepto de alias extern, considera todos los ensamblados a los que se hace referencia.

En C#, si se hace referencia a la biblioteca principal como un ensamblado extern, se buscará en ella. No se buscarán todos los demás ensamblados con alias extern.

Dado que la accesibilidad al ensamblado actual se omite al buscar tipos que coincidan con el nombre de metadatos proporcionados, si varios ensamblados a los que se hace referencia definen el mismo símbolo de tipo (como sucede a menudo cuando los usuarios copian tipos conocidos de la BCL u otros orígenes), esta API devolverá null, incluso si todos pero uno de esos símbolos sería inaccesible para el código escrito por el usuario en el ensamblado actual. Para un control específico sobre la resolución de ambigüedad, considere la posibilidad de usar GetTypesByMetadataName(String) en su lugar y filtrar los resultados para el símbolo necesario.

Los ensamblados pueden contener varios módulos. Dentro de cada ensamblado, la búsqueda se realiza en función de la posición del módulo en la lista de módulos de ese ensamblado. Cuando se encuentra una coincidencia en un módulo de un ensamblado, no se buscan más módulos dentro de ese ensamblado.

Los reenviadores de tipos se omiten y no se consideran parte del ensamblado donde se escribe typeForwardAttribute.

Las ambigüedades se detectan en cada nivel anidado. Por ejemplo, si A+B se solicita y hay varios A, pero solo uno de ellos tiene un B tipo anidado, la búsqueda se considerará ambigua y se devolverá null.

Se aplica a