Hay tres opciones diferentes de conjunto de permisos que restringen lo que puede hacer el ensamblado
SAFE
- Restringe el ensamblado al código administrado
EXTERNAL_ACCESS
- permite el acceso a archivos, recursos de red, etc.
UNSAFE
- Acceso sin restricciones, incluida la ejecución de código no administrado
MSDN docs dan la siguiente guía
Si su ensamblaje solo usa características de .NET 3.5, no veo por qué necesitaría UNSAFE
acceso.
Es posible que esté utilizando uno de los tipos o miembros no permitidos de la biblioteca System.Core. Microsoft tiene una lista de estos. Tipos y miembros no permitidos en System.Core.dll
Hay algo más de información aquí. Atributos de protección de host y programación de integración CLR