Applying the AllowPartiallyTrustedCallersAttribute
attribute class at the assembly level of a strong named assembly
allows partially trusted code to call the assembly's
public and protected members. Without specifying the
AllowPartiallyTrustedCallersAttribute, all public
and protected members of a strong-named assembly are only accessible
to fully trusted code (i.e., code granted the
FullTrust permission set during policy
resolution).

The restriction is implemented through a
LinkDemand for the FullTrust
permission set that is applied automatically by the compiler to every
public and protected member of
every public class in an assembly.