Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 19548|Jawab: 0

[Sumber] Gunakan InternalsVisibleTo untuk menambahkan "rakitan teman" ke rakitan

[Salin tautan]
Diposting pada 06/02/2017 14.28.57 | | |

Kata kunci internal di C# dapat membuat metode, bidang, atau atribut yang ditandai hanya tersedia dalam rakitan saat ini, jadi bagaimana jika rakitan lain perlu menggunakan metode internal ini? .NET menyediakan cara untuk menyelesaikan fungsi ini mirip dengan kelas teman di C++, yaitu dengan menggunakan InternalsVisibleTo.

Ini umum saat melakukan pengujian, dan proyek lain diperlukan untuk menguji fungsionalitas yang ditandai oleh metode internal dalam proyek, jadi dengan InternalsVisibleTo, kita tidak perlu mengubah metode yang seharusnya tidak bersifat publik ke publik untuk melakukan pengujian unit.

Masih ada beberapa hal yang perlu diperhatikan saat menggunakan InternalsVisibleTo, terutama PublicKey tidak mudah dipahami, mari kita bicara tentang cara menggunakan InternalsVisibleTo ini:

Pertama-tama mari kita jelaskan premisnya: Project1 adalah proyek fungsional, dan Project1.Test (nama rakitan: Project1.Test.dll) adalah proyek pengujian untuk Project1.

1. Buka file Assembly.cs Project1 dan tambahkan kalimat ini ke akhir file:


PublicKey=****** harus diganti dengan kunci publik Project1.Test.dll, adapun cara mendapatkan PublicKey, silakan lihat bagian Catatan di akhir artikel.

2. Verifikasi bahwa namespace: System.Runtime.CompilerServices ditambahkan ke referensi namespace Assembly.cs, karena InternalsVisibleTo terletak di namespace System.Runtime.CompilerService.

Notes:

1. Bagaimana cara mendapatkan PublicKey?

J: Di bawah baris perintah, gunakan sn -tp Project1.Test.dll untuk melihat PublicKey dan PublicKeyToken

2. Jika Project1 adalah project dengan nama kuat, maka InternalsVisibleTo harus menentukan PublicKey, jadi Project1.Test juga harus menggunakan tanda tangan yang kuat untuk menggunakan InternalsVisibleTo dengan benar, jika tidak, kompilasi akan membuat kesalahan, jika Project1 tidak menggunakan tanda tangan yang kuat, Kemudian Project1.Test tidak perlu menggunakan tanda tangan yang kuat, dan saat menggunakan InternalsVisibleTo, hanya nama rakitan yang diperlukan, dan tidak perlu mengatur PuklicKey.




Mantan:InternalsVisibleToAttribute mengekspos anggota internal ke rakitan teman yang ditentukan
Depan:[Mitos] Apakah metode Init objek HttpApplication hanya akan dieksekusi sekali?
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com