Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 21086|Svar: 0

[Kilde] InternalsVisibleToAttribute eksponerer det interne medlem for den angivne friend-assembly

[Kopier link]
Opslået på 06/02/2017 14.27.59 | | |
Introduktion til Youyuan-forsamlingen
Vi ved, at medlemmer af en klasse, der er defineret som interne (inklusive typer, metoder, egenskaber, variable, begivenheder), kun kan tilgås i samme assembly (selvfølgelig taler jeg om den normale måde her, uden adgang via refleksion). Denne regel er i . .NET 2.0 er en smule ødelagt, hvilket gør det muligt for os at sætte en assemblys interne medlemmer til at blive tilgået af specifikke medlemmer. Vi kalder samlingen, der indeholder disse interne medlemmer, kildesamlingen, og samlingssættet kaldes friend-samlingen.

Brug af ven samling
Denne attribut bruges på samlingsniveau.


På denne måde kan FriendAssembly-programmet, efter at have refereret til assemblyen, få adgang til den interne Name-egenskab.
Generelt set er denne assembly:InternalsVisibleTo("FriendAssembly") bedre placeret i AssemblyInfo.cs, for den er trods alt på assembly-niveau.

Hvornår skal man bruge InternalsToVisibleTo
Faktisk bruges denne attribut ikke i generelle anvendelser, og vi bør ikke misbruge den. For generelt behøver en veludformet samling ikke at være åben mod omverdenen.
Men enhedstestscenarier kan udnytte denne funktion. Med denne funktion kan vi specificere, at koden til enhedstests har adgang til disse interne medlemmer, så vi kan unitteste dem. Dette kræver dog, at navnet på vennesamlingen står dødt i kildesamlingen, hvilket skaber nogle sikkerhedsproblemer. Sikkerhed kan garanteres ved at indføre signatursamlinger.

InternalsToVisibleTo og signatursamlingen
Du kan direkte angive navnet og den offentlige nøgle for vennemeta-assemblyen til InternalsVisibleTo.
Brug VS-udviklerkommandolinjen til at generere den offentlige nøgle til FriendAssembly:


Angiv navnet på vennesamlingen og den offentlige nøgle til kildesamlingen:


Faktisk, da friend assembly refererer til kildeassemblyen, og den signerede assembly refererer til en usigneret assembly, og den signerede assembly ikke kan specificere en usigneret friend assembly, er nogen af dem signeret, så de skal underskrives.





Tidligere:Spring automatisk til Tenpay-betalingssiden og udfyld oplysningerne automatisk
Næste:Brug InternalsVisibleTo til at tilføje "friend assembly" til assembly
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com