Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengakses Kelas Dalaman daripada Perhimpunan Luar dalam C#?

Bagaimanakah Saya Boleh Mengakses Kelas Dalaman daripada Perhimpunan Luar dalam C#?

Patricia Arquette
Lepaskan: 2025-01-01 09:13:10
asal
972 orang telah melayarinya

How Can I Access Internal Classes from External Assemblies in C#?

Mengakses Kelas Dalaman daripada Perhimpunan Luar

Dalam senario tertentu, anda mungkin menghadapi situasi di mana perhimpunan yang anda gunakan menyediakan kaedah yang mengembalikan jenis objek, tetapi itu objek sebenarnya tergolong dalam kelas dalaman dalam perhimpunan yang tidak boleh diakses. Ini menimbulkan persoalan tentang cara untuk mengakses medan dan kaedah kelas dalaman itu daripada pemasangan anda sendiri.

Penyelesaian: InternalsVisibleTo

Walaupun mengubah suai pemasangan yang dibekalkan vendor tidak menjadi persoalan, terdapat ialah penyelesaian jika anda ingin membenarkan akses pemasangan tertentu kepada ahli dalaman pemasangan vendor untuk tujuan ujian. Ini boleh dicapai menggunakan atribut InternalsVisibleTo.

Dalam fail AssemblyInfo.cs projek anda, tambahkan baris berikut:

[assembly: InternalsVisibleTo("name of assembly here")]
Salin selepas log masuk

Barisan ini memberikan akses perhimpunan yang ditentukan kepada ahli dalaman perhimpunan anda, termasuk kelas dalaman yang anda cuba akses.

Penggunaan

Setelah anda menambah atribut InternalsVisibleTo dan membina semula pemasangan anda, anda boleh mengakses kelas dalaman daripada pemasangan luaran anda seperti berikut:

public class MyClass
{
  public void AccessTest()
  {
    Vendor vendor = new Vendor();
    object value = vendor.Tag;

    // Cast the object to the internal class type
    InternalClass internalClass = (InternalClass)value;

    // Access the internal member
    string test = internalClass.test;
  }
}
Salin selepas log masuk

Nota: Adalah penting untuk memastikan perhimpunan yang anda berikan akses adalah digunakan untuk tujuan ujian sahaja, kerana ia boleh menjejaskan keselamatan aplikasi anda jika digunakan dalam pengeluaran.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Kelas Dalaman daripada Perhimpunan Luar dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan