Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Memuatkan dan Menggerakkan Jenis Secara Dinamik daripada Nama Himpunan dalam .NET?
Muat secara dinamik dan nyatakan jenis pemasangan pada masa jalan
Dalam sesetengah kes, anda mungkin perlu membuat instantiate objek pada masa jalan tanpa dapat mengubah suai rujukan pemasangan projek. Ini berlaku apabila anda hanya mengetahui nama perhimpunan dan nama jenis yang layak sepenuhnya bagi kelas yang diperlukan.
Kaedah:
Untuk mengatasi cabaran ini, anda boleh menggunakan refleksi .NET dan mekanisme pemuatan pemasangan untuk melaksanakan langkah berikut:
Assembly.LoadFrom
untuk memuatkan pemasangan ke dalam ingatan. Kaedah ini boleh memuatkan pemasangan walaupun laluan mutlak ke pemasangan tidak diketahui, menjadikannya sesuai untuk pemasangan yang terletak dalam direktori lain atau dimuatkan ke dalam Global Assembly Cache (GAC). Type.GetType
. Langkah ini memerlukan nama jenis yang layak sepenuhnya sebagai parameter. Type
dengan objek Activator.CreateInstance
yang diperoleh untuk menyatakan jenis yang diperlukan. Berikut ialah contoh kod yang dipermudahkan:
<code class="language-csharp">Assembly assembly = Assembly.LoadFrom("MyCoolAssembly.dll"); Type myType = assembly.GetType("MyNamespace.MyType"); object myInstance = Activator.CreateInstance(myType);</code>
Alternatif kepada peleraian jenis dinamik:
Jika anda mempunyai kedua-dua nama fail pemasangan dan nama jenis, anda boleh menggunakan kaedah Activator.CreateInstance(assemblyName, typeName)
. Kaedah ini membolehkan .NET menyelesaikan jenis secara automatik tanpa refleksi manual. Jika timbul sebarang isu penghuraian, anda boleh memasukkan blok try/catch
untuk mencari direktori pemasangan tertentu atau cuba memuatkannya secara manual menggunakan kaedah Assembly.LoadFrom
yang dinyatakan sebelum ini.
Dengan menggunakan teknik ini, anda mempunyai fleksibiliti untuk memuatkan dan membuat instantiat jenis secara dinamik semasa masa jalan, walaupun anda tidak mempunyai akses kepada lokasi fizikal pemasangan atau tidak merujuknya secara langsung dalam projek anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memuatkan dan Menggerakkan Jenis Secara Dinamik daripada Nama Himpunan dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!