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: 21086|Răspunde: 0

[Sursă] InternalsVisibleToAttribute expune membrul intern la asamblarea prietenului specificată

[Copiază linkul]
Postat pe 06.02.2017 14:27:59 | | |
Introducere în Adunarea Youyuan
Știm că membrii unei clase definiți ca interni (inclusiv tipuri, metode, proprietăți, variabile, evenimente) pot fi accesați doar în aceeași asamblare (desigur, aici vorbesc despre modul normal, fără a include accesul prin reflexie). Această regulă este în . .NET 2.0 este ușor defect, permițându-ne să setăm membrii interni ai unui asamblare să fie accesați de membri specifici. Numim asamblarea care conține acești membri interni asamblarea sursă, iar mulțimea de asamblare se numește asamblarea prietenă.

Utilizare în asamblarea prietenilor
Acest atribut este folosit la nivel de asamblare.


Astfel, după ce programul FriendAssembly face referire la asamblare, poate accesa proprietatea internă Name.
În general, această asamblare:InternalsVisibleTo("FriendAssembly") este mai bine poziționată în AssemblyInfo.cs, până la urmă, este la nivel de asamblare.

Când să folosești InternalsToVisibleTo
De fapt, acest atribut nu este folosit în aplicații generale și nu ar trebui să abuzăm de acest atribut. Pentru că, în general, o asamblare bine proiectată nu trebuie să fie deschisă lumii exterioare.
Dar scenariile de testare unitară pot profita de această caracteristică. Cu această funcționalitate, putem specifica că codul pentru testele unitare are acces la acei membri interni, astfel încât să putem testa unitățile lor. Totuși, acest lucru necesită scrierea numelui asamblării prietenului mort în asamblarea sursă, ceea ce cauzează unele probleme de securitate. Securitatea poate fi garantată prin introducerea asamblărilor de semnătură.

InternalsToVisibleTo și asamblarea semnăturilor
Poți specifica direct numele și cheia publică a asamblării meta friend către InternalsVisibleTo.
Folosește linia de comandă a dezvoltatorului VS pentru a genera cheia publică pentru FriendAssembly:


Specifică numele asamblării prietenului și cheia publică a asamblării sursă:


De fapt, deoarece asamblarea prietenului face referire la asamblarea sursă, iar asamblarea semnată face referire la o asamblare nesemnată, iar asamblarea semnată nu poate specifica o asamblare prietenă nesemnată, oricare dintre ele este semnată, atunci trebuie să fie semnată.





Precedent:Sari automat la pagina de transfer de plată Tenpay și completează informațiile automat
Următor:Folosește InternalsVisibleTo pentru a adăuga "asamblarea prietenului" în asamblare
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