Obsah:
Definice - Co znamená Sestava přátel?
Sestava přítele v C # odkazuje na sestavu .NET, která má přístup k členům jiné sestavy. Členové v sestavě, které jsou přístupné ze sestavy přátel, musí být označeny jako
vnitřní.
Sestavy přátel se používají ve scénářích, kde je třeba přistupovat k interním třídám a členům v jedné sestavě z jiné konkrétní sestavy. Umožňuje dvěma specifickým sestavám sdílet členy nebo funkce, aniž by byly zveřejněny.
Sestavy přátel se také používají při testování jednotek, kde sestava, která je základem testovacího kódu, musí mít přístup ke členům, které jsou v testované sestavě označeny jako interní. Je to užitečné při vývoji knihoven tříd, které vyžadují doplňky obsažené v samostatných sestavách, které potřebují přístup k členům ve stávajících sestavách.
Techopedia vysvětluje sestavení přátel
Označením členů třídy jako interní jsou viditelné pro jiné třídy v rámci stejné sestavy, ale jsou soukromé pro třídy, které sídlí mimo sestavu. Pro přístup k interním členům ze sestavy přátel by měl být název sestavy přátel uveden s atributem InternalsVisibleToAttribute v sestavě, kde jsou definováni interní členové. Sestava přátel nemá přístup k soukromým typům a soukromým členům.
Například InternalsVisibleToAttribute v sestavě X lze použít k určení sestavy Y jako sestavy přátel, takže sestava Y má přístup ke všem typům a členům sestavy X, které jsou označeny jako interní.
Následující pokyny se týkají vývoje sestav přátel:
- Při použití podepsaných sestav lze pomocí nástroje „sn.exe“ získat veřejný klíč, který musí být předán atributu určujícímu sestavu přátel
- Při kompilaci sestavy přítele, která přistupuje k interním členům jiné sestavy, musí být volba kompilátoru (/ out) nastavena s názvem výstupního souboru (.exe nebo .dll)
- Je nutné explicitně specifikovat každou sestavu, která musí být přítelem pro sestavu, ke které potřebuje přístup
- Doporučuje se používat sestavy přátel bez porušení pravidel enkapsulace
