Описание тега internalsvisibleto
Атрибут в.NET для предоставления членов, помеченных как внутренние, для выбранных сборок.
В.NET члены с модификатором доступа "internal" видны только классам внутри текущей сборки. Это можно обойти, добавив атрибут InternalsVisibleTo в файл AssemblyInfo.
Таким образом, сборка с внутренними элементами может контролировать, какие другие сборки имеют доступ к этим элементам.
Обе сборки должны быть без подписи или обе должны быть подписаны. Если оба подписаны, полный открытый ключ должен быть включен в конструктор атрибута.
Неподписанная сборка может предоставлять внутренние члены другой неподписанной сборке с помощью (C# и VB.NET):
[assembly:InternalsVisibleTo("AnUnsignedAssembly")]
<Assembly:InternalsVisibleTo("AnUnsignedAssembly")>
Чтобы подписанная сборка открывала внутренние члены другой подписанной сборке, можно использовать следующее (C# и VB.NET):
[assembly: InternalsVisibleTo("SignedAssembly, PublicKey=002400000480000094" +
"0000000602000000240000525341310004000" +
"001000100bf8c25fcd44838d87e245ab35bf7" +
"3ba2615707feea295709559b3de903fb95a93" +
"3d2729967c3184a97d7b84c7547cd87e435b5" +
"6bdf8621bcb62b59c00c88bd83aa62c4fcdd4" +
"712da72eec2533dc00f8529c3a0bbb4103282" +
"f0d894d5f34e9f0103c473dce9f4b457a5dee" +
"fd8f920d8681ed6dfcb0a81e96bd9b176525a" +
"26e0b3")]
<Assembly:InternalsVisibleTo("SignedAssembly, PublicKey=002400000480000094" + _
"0000000602000000240000525341310004000" + _
"001000100bf8c25fcd44838d87e245ab35bf7" + _
"3ba2615707feea295709559b3de903fb95a93" + _
"3d2729967c3184a97d7b84c7547cd87e435b5" + _
"6bdf8621bcb62b59c00c88bd83aa62c4fcdd4" + _
"712da72eec2533dc00f8529c3a0bbb4103282" + _
"f0d894d5f34e9f0103c473dce9f4b457a5dee" + _
"fd8f920d8681ed6dfcb0a81e96bd9b176525a" + _
"26e0b3")>