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

Utsikt: 19548|Svare: 0

[Kilde] Bruk InternalsVisibleTo for å legge til "friend assembly" i assembly

[Kopier lenke]
Publisert på 06.02.2017 14:28:57 | | |

Det interne nøkkelordet i C# kan gjøre at de markerte metodene, feltene eller attributtene kun er tilgjengelige innenfor den nåværende assemblyen, så hva om andre assemblies må bruke denne interne metoden? .NET gir en måte å utføre denne funksjonen på lik friend-klassen i C++, nemlig å bruke InternalsVisibleTo.

Dette er vanlig når man gjør tester, og et annet prosjekt trengs for å teste funksjonaliteten markert av den interne metoden i prosjektet, så med InternalsVisibleTo trenger vi ikke å endre en metode som ikke skal være offentlig til offentlig for å kunne utføre enhetstesting.

Det er fortsatt noen ting å være oppmerksom på når man bruker InternalsVisibleTo, spesielt PublicKey er ikke lett å forstå, la oss snakke om hvordan du bruker denne InternalsVisibleTo:

La oss først forklare premisset: Project1 er et funksjonelt prosjekt, og Project1.Test (assemblernavn: Project1.Test.dll) er et testprosjekt for Project1.

1. Åpne Assembly.cs-filen til Project1 og legg til denne setningen på slutten av filen:


PublicKey=****** bør erstattes med den Project1.Test.dll offentlige nøkkelen, for hvordan du får PublicKey, se Notat-seksjonen på slutten av artikkelen.

2. Verifiser at navnerommet: System.Runtime.CompilerServices legges til navnerommets referanse til Assembly.cs, siden InternalsVisibleTo ligger i navnerommet System.Runtime.CompilerService.

Notes:

1. Hvordan får jeg en PublicKey?

Svar: Under kommandolinjen, bruk sn -tp Project1.Test.dll for å se PublicKey og PublicKeyToken

2. Hvis Project1 er et sterkt navngitt prosjekt, må InternalsVisibleTo spesifisere en PublicKey, så Project1.Test må også bruke en sterk signatur for å bruke InternalsVisibleTo korrekt, ellers vil kompileringen gjøre en feil hvis Project1 ikke bruker en sterk signatur, Da trenger ikke Project1.Test å bruke sterke signaturer, og når man bruker InternalsVisibleTo, kreves kun navnet på samlingen, og det er ikke nødvendig å sette PuklicKey.




Foregående:InternalsVisibleToAttribute eksponerer det interne medlemmet for den angitte venn-assemblyen
Neste:[Myte] Vil HttpApplication-objektet Init-metoden bare bli kjørt én gang?
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