using System.Runtime.CompilerServices; [assembly:InternalsVisibleTo("name, PublicKey=.....")] class Whatever { internal Whatever() {} }This gives the assembly "name" access to all public and internal types in the DLL. Please note that you have to specify the public key, not the abbreviated public key token. The constructor would still be visible to other classes in your assembly, though.