See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 21086|Vastuse: 0

[Allikas] InternalsVisibleToAttribute avab sisemise liikme määratud sõbra assambleele

[Kopeeri link]
Postitatud 06.02.2017 14:27:59 | | |
Sissejuhatus Youyuani Assambleesse
Me teame, et klassi liikmed, mis on defineeritud kui sisemised (sh tüübid, meetodid, omadused, muutujad, sündmused), on ligipääsetavad ainult samas assamblees (muidugi räägin siin tavapärasest viisist, mitte arvestada ligipääsu reflektsiooni kaudu). See reegel on . .NET 2.0 on veidi katki, võimaldades meil määrata assamblee sisemised liikmed konkreetsetele liikmetele ligipääsetavaks. Me nimetame assamblee, mis sisaldab neid sisemisi liikmeid, lähteassambleeks ja assamblee komplekti nimetatakse sõbra assambleeks.

Sõprade kokkupaneku kasutus
Seda atribuuti kasutatakse assembleri tasemel.


Nii saab pärast seda, kui FriendAssembly programm viitab assambleele, ligi sisemisele Nime omadusele.
Üldiselt on see assembler:InternalsVisibleTo ("FriendAssembly") parem paigutada AssemblyInfo.cs, sest see on ju assembleri tasemel.

Millal kasutada InternalsToVisibleTo
Tegelikult seda atribuuti üldrakendustes ei kasutata ja me ei tohiks seda kuritarvitada. Sest üldiselt ei pea hästi kujundatud kogum olema avatud välismaailmale.
Kuid ühiktestimise stsenaariumid saavad seda võimalust ära kasutada. Selle funktsiooniga saame määrata, et üksustestide kood pääseb ligi nendele sisemistele liikmetele, et saaksime neid üksustestida. See nõuab aga sõbra assamblee nime kirjutamist lähtekoodi assambleesse, mis tekitab turvaprobleeme. Turvalisust saab tagada, lisades allkirjade kokkupanekud.

InternalsToVisibleTo ja allkirja komplekt
Saad otse määrata sõbra meta assembleri nime ja avaliku võtme InternalsVisibleTo-le.
Kasuta VS arendaja käsureda, et genereerida FriendAssembly avalik võti:


Määra sõbra assamblee nimi ja lähtekoodi avaliku võtme:


Tegelikult, kuna sõbraassamblee viitab lähteassambleele ja allkirjastatud assamblee viitab allkirjastamata assambleele ning allkirjastatud assamblee ei saa määrata allkirjastamata sõbra assambleed, siis kõik neist on allkirjastatud, siis tuleb need allkirjastada.





Eelmine:Hüppa automaatselt Tenpay makseülekande lehele ja täida info automaatselt
Järgmine:Kasuta InternalsVisibleTo, et lisada "friend assembly" assambleesse
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com