Советы по кодированию по вторникам — это короткие посты о различных лакомых кусочках, в основном из C++, но также и из других языков программирования, которые я использую. Вы также можете следить за хэштегом #TuesdayCodingTips на Mastodon и Linkedin.

C# имеет ряд ключевых слов видимости и их комбинаций. Своеобразным является «внутренний», который ограничивает видимость символов текущей сборкой. Однако это можно подправить.

Вы можете вручную указать имена сборок, которым будут видны «внутренние» биты. Почему это полезно? Потому что вы можете с легкостью предоставлять закрытые части своего кода сборкам, таким как модульные тесты и тестовый код. Больше никаких «дружеских» махинаций, как в модульных тестах C++!

Способы его настройки развивались с годами, и наиболее современным подходом, по-видимому, является прямая настройка файла проекта (с последними версиями MSVC и .NET 5+).

<Project>
    <!-- ... --->

 <ItemGroup>
  <AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
   <_Parameter1>$(AssemblyName).Tests</_Parameter1>
  </AssemblyAttribute>
 </ItemGroup>

</Project>