Будинки Розвиток Що таке збірка друзів? - визначення з техопедії

Що таке збірка друзів? - визначення з техопедії

Зміст:

Anonim

Визначення - Що означає збірка друзів?

Асистент друзів у C # посилається на .NET збірку, яка може отримати доступ до членів іншої збірки. Члени зборів, до яких звертаються товариші, мають бути позначені як

внутрішній.


Дружні збори використовуються в сценаріях, коли є необхідність доступу до внутрішніх класів і членів в одній асамблеї з іншої конкретної збірки. Це дозволяє двом конкретним зборам ділитися членами або функціональними можливостями, не роблячи їх загальнодоступними.


Дружні збори також використовуються при тестуванні одиниць, коли збірка, що лежить в основі тестового коду, має доступ до членів, позначених як внутрішні у збірці, що перевіряється. Це корисно при розробці бібліотек класів, які потребують доповнень, що містяться в окремих асамблеях, які потребують доступу до членів в існуючих асамблеях.

Техопедія пояснює збори друзів

Позначивши членів класу як внутрішні, вони можуть бути видимими для інших класів в межах тієї ж збірки, але є приватними для класів, які перебувають поза збіркою. Для доступу до внутрішніх членів зі складу товаришів, ім'я дружньої збірки повинно бути вказане з атрибутом, InternalsVisibleToAttribute в зборах, де визначені внутрішні члени. Асамблея друзів не має доступу до приватних типів та приватних членів.


Наприклад, InternalsVisibleToAttribute в Асамблеї X може бути використаний для визначення Асамблеї Y як другої збірки, так що Асамблея Y може отримувати доступ до всіх типів і членів Асамблеї X, позначених як внутрішні.


Нижче наведено вказівки, пов'язані з розробкою дружніх зборів:

  • Під час використання підписаних збірок інструмент 'sn.exe' може бути використаний для отримання відкритого ключа, який повинен бути переданий атрибуту, що визначає збірку друзів
  • Під час компіляції другої збірки, яка отримує доступ до внутрішніх членів іншої збірки, параметр (/ вихід) компілятора повинен бути встановлений з ім'ям вихідного файлу (.exe або .dll)
  • Необхідно чітко вказати кожну збірку, яка має бути другом для збірки, до якої вона потребує доступу
  • Пропонується використовувати дружні збірки, не порушуючи правил інкапсуляції
Це визначення було написано в контексті C #
Що таке збірка друзів? - визначення з техопедії