Reflection in PowerShell
Types, properties, and methods can be marked as internal or private. Internal types and members are only accessible by other types and members within the same assembly. Private members are only accessible within the same class or type. Collectively, these can be described as non-public types and members.
Non-public types and members are accessible using what is known as reflection. The .NET reference describes reflection in the dynamic programming guide: https://learn.microsoft.com/dotnet/framework/reflection-and-codedom/reflection.
PowerShell can make use of reflection to explore and use non-public types and members. Doing so introduces a risk; such types and members are not part of a public-supported API. As the code is updated, these non-public types and members may disappear or change behavior. Therefore, it is not recommended to make code that is to be used in production dependent on a non-public implementation.
Even if it might not be supported...