Besonders beim Erstellen von UnitTests muss man hin- und wieder mal auf private oder als internal markierte Typen (Klassen, Strukturen, Enumerationen, Schnittstellen) zugreifen. Aus Sicht der Programmiersprache ist das weder vorgesehen noch möglich.
Mit dem hier gezeigten Attribut für die Assembly aber schon. Dieses muss einfach irgendwo im Projekt hinein gesetzt werden, am besten aber in der AssemblyInfo.cs/.vb. Dadurch wird alles innerhalb der Assembly für die angegebene sozusagen "öffentlich".
//wenn TestAssembly nicht signiert ist:
[assembly: InternalsVisibleTo("TestAssembly")]
//wenn TestAssembly signiert ist:
//TODO: MYPUBLICKEY mit dem öffentlichen Schlüssel des Zertifikats ersetzen
[assembly: InternalsVisibleTo("TestOtherAssembly, PublicKey=MYPUBLICKEY")]
2 Kommentare zum Snippet