Sometimes you need a little tweak so some internal implementation which hasn't been made public API surface because a mainstream enough scenario couldn't be found to support it.
An (little known) escape hatch to avoid visibility checks is available that can unlock very specific and niche cases, provided the user is very clear on the risk of internals changing without notice and their code not being supported in any way.
See https://www.strathweb.com/2018/10/no-internalvisibleto-no-problem-bypassing-c-visibility-rules-with-roslyn/

