Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 19548|Răspunde: 0

[Sursă] Folosește InternalsVisibleTo pentru a adăuga "asamblarea prietenului" în asamblare

[Copiază linkul]
Postat pe 06.02.2017 14:28:57 | | |

Cuvântul cheie intern din C# poate face ca metodele, câmpurile sau atributele marcate să fie disponibile doar în ansamblarea curentă, deci ce se întâmplă dacă alte asamblări trebuie să folosească această metodă internă? .NET oferă o modalitate de a realiza această funcție similar clasei friend din C++, care este să folosești InternalsVisibleTo.

Acest lucru este comun la teste, iar un alt proiect este necesar pentru a testa funcționalitatea marcată de metoda internă în proiect, astfel încât cu InternalsVisibleTo nu trebuie să schimbăm o metodă care nu ar trebui să fie publică la public pentru a face testare unitară.

Mai sunt încă câteva aspecte la care trebuie să fii atent când folosești InternalsVisibleTo, în special faptul că PublicKey nu este ușor de înțeles, hai să vorbim despre cum să folosești acest InternalsVisibleTo:

Să explicăm mai întâi premisa: Proiectul 1 este un proiect funcțional, iar Proiectul 1. Test (numele asamblării: Project1.Test.dll) este un proiect de test pentru Proiectul 1.

1. Deschide fișierul Assembly.cs din Project1 și adaugă această propoziție la finalul fișierului:


PublicKey=****** ar trebui înlocuit cu Project1.Test.dll cheia publică; pentru modul de a obține PublicKey, vă rugăm să consultați secțiunea Note de la finalul articolului.

2. Verificați acel spațiu de nume: System.Runtime.CompilerServices este adăugat la referința spațiului de nume a Assembly.cs, deoarece InternalsVisibleTo se află în spațiul de nume System.Runtime.CompilerService.

Notes:

1. Cum obțin un PublicKey?

R: În linia de comandă, folosește sn -tp Project1.Test.dll pentru a vedea PublicKey și PublicKeyToken

2. Dacă Project1 este un proiect cu nume puternic, atunci InternalsVisibleTo trebuie să specifice o PublicKey, astfel încât Project1.Test trebuie să folosească și o semnătură puternică pentru a folosi corect InternalsVisibleTo, altfel compilarea va produce o eroare dacă Proiect1 nu folosește o semnătură puternică, Atunci Project1.Test nu trebuie să folosească semnături puternice, iar când se folosește InternalsVisibleTo, este necesar doar numele asamblării și nu este nevoie să se seteze PuklicKey.




Precedent:InternalsVisibleToAttribute expune membrul intern la asamblarea prietenului specificată
Următor:[Mit] Va fi executată metoda Init a obiectului HttpApplication o singură dată?
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com