Bagikan melalui


Compilation.GetTypeByMetadataName(String) Metode

Definisi

Mendapatkan jenis dalam rakitan kompilasi dan semua rakitan yang direferensikan (selain yang hanya dapat dirujuk melalui alias ekstern) menggunakan nama metadata CLR kanonisnya. Pencarian ini mengikuti urutan berikut:

  1. Jika jenis ditemukan di rakitan kompilasi, jenis tersebut dikembalikan.
  2. Selanjutnya, pustaka inti (pustaka yang menentukan System.Object dan tidak memiliki referensi perakitan) dicari. Jika jenis ditemukan di sana, jenis tersebut dikembalikan.
  3. Akhirnya, semua rakitan non-ekstern yang direferensikan yang tersisa dicari. Jika satu dan hanya satu jenis yang cocok dengan nama metadata yang disediakan yang ditemukan, jenis tunggal tersebut dikembalikan. Aksesibilitas diabaikan untuk pemeriksaan ini.
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

Parameter

fullyQualifiedMetadataName
String

Mengembalikan

Null jika jenis tidak dapat ditemukan atau ada ambiguitas selama pencarian.

Keterangan

Karena VB tidak memiliki konsep alias ekstern, VB mempertimbangkan semua rakitan yang dirujuk.

Di C#, jika pustaka inti direferensikan sebagai rakitan ekstern, pustaka inti akan dicari. Semua rakitan alias ekstern lainnya tidak akan dicari.

Karena aksesibilitas ke rakitan saat ini diabaikan saat mencari jenis yang cocok dengan nama metadata yang disediakan, jika beberapa rakitan yang dirujuk menentukan simbol jenis yang sama (seperti yang sering terjadi ketika pengguna menyalin jenis terkenal dari BCL atau sumber lain) maka API ini akan mengembalikan null, bahkan jika semua kecuali salah satu simbol tersebut tidak akan dapat diakses oleh kode yang ditulis pengguna di rakitan saat ini. Untuk kontrol halus atas resolusi ambiguitas, pertimbangkan untuk menggunakan GetTypesByMetadataName(String) sebagai gantinya dan memfilter hasil untuk simbol yang diperlukan.

Rakitan dapat berisi beberapa modul. Dalam setiap perakitan, pencarian dilakukan berdasarkan posisi modul dalam daftar modul perakitan tersebut. Ketika kecocokan ditemukan dalam satu modul dalam perakitan, tidak ada modul lebih lanjut dalam perakitan tersebut yang dicari.

Penerus jenis diabaikan, dan tidak dianggap sebagai bagian dari rakitan tempat TypeForwardAttribute ditulis.

Ambiguitas terdeteksi pada setiap tingkat berlapis. Misalnya, jika A+B diminta, dan ada beberapa Atetapi hanya satu dari mereka yang memiliki B jenis berlapis, pencarian akan dianggap ambigu dan null akan dikembalikan.

Berlaku untuk