Det finns tre olika permission_set-alternativ som begränsar vad sammansättningen kan göra
SAFE - Begränsar sammansättningen till hanterad kod
EXTERNAL_ACCESS - ger åtkomst till filer, nätverksresurser, etc..
UNSAFE - Obegränsad åtkomst - inklusive exekvering av icke-hanterad kod
MSDN docs ger följande vägledning
Om din sammansättning bara använder funktionerna i .NET 3.5, ser jag inte varför den skulle behöva UNSAFE åtkomst.
Det är möjligt att du använder en av de typer eller medlemmar som inte är tillåtna från System.Core-biblioteket. Microsoft har en lista över dessa. Otillåtna typer och medlemmar i System.Core.dll
Det finns lite mer info här. Värdskyddsattribut och CLR-integreringsprogrammering