Iekšējais atslēgvārds C# var padarīt atzīmētās metodes, laukus vai atribūtus pieejamus tikai pašreizējā montāžā, tāpēc ko darīt, ja citiem komplektiem ir jāizmanto šī iekšējā metode? .NET nodrošina veidu, kā izpildīt šo funkciju, līdzīgi kā draugu klase C++, kas ir izmantot InternalsVisibleTo.
Tas ir izplatīts, veicot testus, un ir nepieciešams cits projekts, lai pārbaudītu funkcionalitāti, kas atzīmēta ar iekšējo metodi projektā, tāpēc, izmantojot InternalsVisibleTo, mums nav jāmaina metode, kurai nevajadzētu būt publiskai sabiedrībai, lai veiktu vienības testēšanu.
Joprojām ir dažas lietas, kurām jāpievērš uzmanība, izmantojot InternalsVisibleTo, jo īpaši PublicKey nav viegli saprast, parunāsim par to, kā izmantot šo InternalsVisibleTo:
Vispirms paskaidrosim priekšnoteikumu: Project1 ir funkcionāls projekts, un Project1.Test (montāžas nosaukums: Project1.Test.dll) ir Project1 testa projekts.
1. Atveriet Project1 Assembly.cs failu un pievienojiet šo teikumu faila beigās:
PublicKey=****** jāaizstāj ar Project1.Test.dll publisko atslēgu, kā iegūt PublicKey, lūdzu, skatiet sadaļu Piezīmes raksta beigās.
2. Pārbaudiet, vai nosaukumvieta: System.Runtime.CompilerServices ir pievienota Assembly.cs nosaukumvietas atsaucei, jo InternalsVisibleTo atrodas nosaukumtelpā System.Runtime.CompilerService.
Notes:
1. Kā es varu iegūt PublicKey?
A: Zem komandrindas izmantojiet sn -tp Project1.Test.dll, lai redzētu PublicKey un PublicKeyToken
2. Ja Project1 ir projekts ar spēcīgu nosaukumu, tad InternalsVisibleTo ir jānorāda PublicKey, tāpēc Project1.Test ir jāizmanto arī spēcīgs paraksts, lai pareizi izmantotu InternalsVisibleTo, pretējā gadījumā kompilācija radīs kļūdu, ja Project1 neizmanto spēcīgu parakstu, Tad Project1.Test nav jāizmanto spēcīgi paraksti, un, izmantojot InternalsVisibleTo, ir nepieciešams tikai montāžas nosaukums, un nav nepieciešams iestatīt PuklicKey. |