0 Tage Serie
csharp / expert
Snippet

Sichtbarkeit interner Member für Test-Assemblies

Um eine starke Kapselung aufrechterzuleiten, wird Logik oft als 'internal' markiert. Das Attribut 'InternalsVisibleTo' erlaubt es spezifischen Test-Assemblies, auf diese Member zuzugreifen, ohne sie öffentlich für alle zugänglich zu machen, was tiefgreifende Unit-Tests erleichtert.

snippet.cs
csharp
1
2
3
4
5
6
7
8
9
// In AssemblyInfo.cs or anywhere at the top level
using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("UnitTestsProject")]
internal class CoreLogic
{
internal int CalculateHiddenMetric() => 42;
}
Erklärung
1
[assembly: InternalsVisibleTo(...)]
Ein Attribut auf Assembly-Ebene, das einem benannten externen Projekt Vertrauen gewährt.
2
internal class CoreLogic
Beschränkt die Sichtbarkeit normalerweise auf die definierende Assembly, wird aber durch das obige Attribut überschrieben.