Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 21086|Svare: 0

[Kilde] InternalsVisibleToAttribute eksponerer det interne medlemmet for den angitte venn-assemblyen

[Kopier lenke]
Publisert på 06.02.2017 14:27:59 | | |
Introduksjon til Youyuan-forsamlingen
Vi vet at medlemmer av en klasse som er definert som interne (inkludert typer, metoder, egenskaper, variabler, hendelser) kun kan nås i samme samling (selvfølgelig snakker jeg om den vanlige måten her, uten tilgang via refleksjon). Denne regelen er i . .NET 2.0 er litt ødelagt, noe som lar oss sette interne medlemmer i en assembly slik at spesifikke medlemmer kan få tilgang til. Vi kaller sammensetningen som inneholder disse interne medlemmene kilde-samlingen, og samlingssettet kalles venn-samlingen.

Bruk av vennemonteringer
Dette attributtet brukes på assemblernivå.


På denne måten, etter at FriendAssembly-programmet refererer til assemblyen, kan det få tilgang til den interne Name-egenskapen.
Generelt sett er denne assembly:InternalsVisibleTo("FriendAssembly") bedre plassert i AssemblyInfo.cs, tross alt er den på assembly-nivå.

Når skal man bruke InternalsToVisibleTo
Faktisk brukes ikke denne attributten i generelle applikasjoner, og vi bør ikke misbruke den. For generelt trenger ikke en godt designet samling å være åpen mot omverdenen.
Men enhetstestingsscenarier kan dra nytte av denne funksjonen. Med denne funksjonen kan vi spesifisere at koden for enhetstester har tilgang til disse interne medlemmene slik at vi kan enhetsteste disse medlemmene. Dette krever imidlertid at navnet på friend-assemblyen skrives dødt i kildeassemblyen, noe som skaper noen sikkerhetsproblemer. Sikkerhet kan garanteres ved å introdusere signatursamlinger.

InternalsToVisibleTo og signatursamlingen
Du kan direkte spesifisere navnet og den offentlige nøkkelen til vennens meta-assembly til InternalsVisibleTo.
Bruk VS-utviklerkommandolinjen for å generere den offentlige nøkkelen for FriendAssembly:


Spesifiser navnet på vennesamlingen og den offentlige nøkkelen til kildesamlingen:


Faktisk, siden friend-assemblyen refererer til kildeassemblyen, og den signerte assemblyen refererer til en usignert assembly, og den signerte assemblyen ikke kan spesifisere en usignert friend-assembly, er noen av dem signert, og da må de signeres.





Foregående:Hopp automatisk til Tenpays betalingsoverføringsside og fyll ut informasjonen automatisk
Neste:Bruk InternalsVisibleTo for å legge til "friend assembly" i assembly
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com