In general, you should not do this - if the type has been marked as internal, it means that you are not going to use it outside the assembly. It can be deleted, changed, etc. In a later version.
However, reflection allows you to access types and members that are not publicly accessible - just find the overloads that accept the BindingFlags argument and include BindingFlags.NonPublic in the flags you pass.
If you have a full type name (including assembly information), then you only need to work with a call to Type.GetType(string) . If you know the assembly in advance and know the public type inside this assembly, then using typeof(TheOtherType).Assembly to get a reference to the assembly is usually simpler, you can call Assembly.GetType(string) .
Jon Skeet Aug 11 '09 at 9:14 2009-08-11 09:14
source share