Spisu treści:
Definicja - Co oznacza Friend Assembly?
Zespół zaprzyjaźniony w języku C # odnosi się do zestawu .NET, który może uzyskiwać dostęp do elementów innego zestawu. Członkowie zestawu, do których dostęp jest uzyskiwany z zestawu znajomych, muszą być oznaczone jako
wewnętrzny.
Zespoły znajomych są używane w scenariuszach, w których istnieje potrzeba dostępu do wewnętrznych klas i elementów w jednym zestawie z innego określonego zestawu. Umożliwia dwóm określonym zestawom współdzielenie członków lub funkcjonalności bez upubliczniania ich.
Zespoły zaprzyjaźnione są również używane w testach jednostkowych, w których zespół leżący u podstaw kodu testowego musi uzyskać dostęp do elementów oznaczonych jako wewnętrzne w testowanym zestawie. Jest przydatny w tworzeniu bibliotek klas, które wymagają dodatków zawartych w oddzielnych zestawach, które muszą mieć dostęp do elementów w istniejących zestawach.
Techopedia wyjaśnia Friend Assembly
Oznaczając elementy klasy jako wewnętrzne, są one widoczne dla innych klas w tym samym zestawie, ale są prywatne dla klas znajdujących się poza zestawem. Aby uzyskać dostęp do elementów wewnętrznych z zestawu znajomych, należy podać nazwę zestawu znajomych za pomocą atrybutu InternalsVisibleToAttribute w zestawie, w którym zdefiniowano elementy wewnętrzne. Asembler nie ma dostępu do typów prywatnych i członków prywatnych.
Na przykład InternalsVisibleToAttribute w zespole X można użyć do określenia zespołu Y jako zespołu przyjaciela, aby zespół Y mógł uzyskać dostęp do wszystkich typów i elementów zespołu X, które są oznaczone jako wewnętrzne.
Poniżej znajdują się wytyczne związane z opracowywaniem zespołów znajomych:
- Podczas korzystania z podpisanych zestawów można użyć narzędzia „sn.exe”, aby uzyskać klucz publiczny, który należy przekazać do atrybutu określającego zestaw znajomego
- Podczas kompilowania zestawu znajomych, który ma dostęp do wewnętrznych elementów innego zestawu, należy ustawić opcję kompilatora (/ out) z nazwą pliku wyjściowego (.exe lub .dll)
- Konieczne jest jawne określenie każdego zestawu, który musi być przyjacielem dla zestawu, do którego potrzebuje dostępu
- Sugeruje się używanie zestawów znajomych bez łamania zasad enkapsulacji
