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