Uvod v skupščino Youyuan Vemo, da je mogoče člane razreda, ki so definirane kot notranje (vključno s tipi, metodami, lastnostmi, spremenljivkami, dogodki), dostopati le v isti sestavi (seveda govorim o običajnem načinu, ne vključujoč dostopa preko refleksije). To pravilo je v . .NET 2.0 je nekoliko pokvarjen, saj nam omogoča, da določimo dostop do notranjih članov zbora za določene člane. Sestavo, ki vsebuje te notranje člane, imenujemo izvorna sestava, zbirka pa se imenuje prijateljska skupščina.
Uporaba v prijateljski skupščini Ta atribut se uporablja na ravni sestavljanja.
Na ta način, ko program FriendAssembly sklicuje na asembler, lahko dostopa do notranje lastnosti Name. Na splošno je ta assembly:InternalsVisibleTo ("FriendAssembly") bolje umeščena v AssemblyInfo.cs, saj je na ravni sestavljanja.
Kdaj uporabiti InternalsToVisibleTo Pravzaprav se ta lastnost ne uporablja v splošnih aplikacijah in je ne smemo zlorabljati. Ker na splošno dobro zasnovana sestava ni nujno, da je odprta za zunanji svet. Vendar pa lahko scenariji enotnega testiranja izkoristijo to funkcijo. S to funkcijo lahko določimo, da ima koda za enotske teste dostop do teh notranjih članov, da jih lahko enotno testiramo. Vendar pa to zahteva, da se ime prijateljske sestave v izvorni sestavi vpiše mrtvo, kar povzroča določene varnostne težave. Varnost je mogoče zagotoviti z uvedbo sestavljanja podpisov.
InternalsToVisibleTo in sestava podpisov Lahko neposredno določite ime in javni ključ prijateljskega meta sestavljanja v InternalsVisibleTo. Uporabite ukazno vrstico za razvijalce VS za generiranje javnega ključa za FriendAssembly:
Določite ime prijateljske skupščine in javni ključ za izvorno zbirko:
Pravzaprav, ker se prijateljska skupščina sklicuje na izvorno sestavo, podpisana skupščina pa se sklicuje na nepodpisano skupščino, podpisana skupščina pa ne more določiti nepodpisane prijateljske skupščine, so vse podpisane in morajo biti podpisane.
|