Innholdsfortegnelse:
Definisjon - Hva betyr Friend Assembly?
En venn forsamling, i C #, viser til. NET-forsamlingen som kan få tilgang til medlemmene i en annen forsamling. Medlemmer i en forsamling som er tilgjengelig fra venneforsamlingen, må merkes som
innvendig.
Vennemøter brukes i scenarier der det er behov for å få tilgang til interne klasser og medlemmer i en forsamling fra en annen spesifikk forsamling. Det gjør det mulig for to spesifikke forsamlinger å dele medlemmer eller funksjonalitet uten å gjøre dem offentlige.
Venneforsamlinger brukes også i enhetstesting der enheten under testkoden trenger å få tilgang til medlemmene som er merket som interne i enheten som skal testes. Det er nyttig i utvikling av klassebiblioteker som krever tillegg i separate samlinger som trenger tilgang til medlemmer i eksisterende samlinger.
Techopedia forklarer Friend Assembly
Ved å merke medlemmer av en klasse som interne, er de synlige for andre klasser i samme forsamling, men er private for klasser som bor utenfor forsamlingen. For å få tilgang til de interne medlemmene fra en vennssamling, skal navnet på vennforsamlingen spesifiseres med attributtet, InternalsVisibleToAttribute i forsamlingen der de interne medlemmene er definert. Vennforsamling har ikke tilgang til private typer og private medlemmer.
For eksempel kan InternalsVisibleToAttribute i Assembly X brukes til å spesifisere Assembly Y som venneforsamling, slik at Assembly Y kan få tilgang til alle typer og medlemmer av Assembly X som er merket som interne.
Følgende er retningslinjene knyttet til utvikling av venneforsamlinger:
- Når du bruker signerte forsamlinger, kan verktøyet 'sn.exe' brukes til å få den offentlige nøkkelen som må sendes til attributtet som angir venneforsamlingen
- Når du kompilerer en vennssamling som får tilgang til interne medlemmer av en annen samling, må kompilatoralternativet (/ ut) settes med navnet på utdatafilen (.exe eller .dll)
- Det er nødvendig å spesifikt spesifisere hver samling som må være venn for den enheten den trenger tilgang til
- Det anbefales å bruke venneforsamlinger uten å bryte reglene for innkapsling
