Quelle est la fonction réelle du paramètre de projet C # & # 8220; Autoriser le code non sécurisé & # 8221;

StackOverflow https://stackoverflow.com/questions/233759

Question

Je me demandais si le paramètre de projet C # "Autoriser le code non sécurisé" s'applique uniquement au code C # non sécurisé dans le projet lui-même, ou est-il nécessaire de définir cette option lors de la liaison dans une DLL C ++ native? Qu'en est-il de la liaison dans une DLL gérée qui se lie elle-même à une DLL native? Qu'est-ce que cette option fait vraiment, sous le capot?

Était-ce utile?

La solution

Cela concerne le " unsafe '" mot-clé en C #. " unsafe " désactive toutes les vérifications normales et vous permet d'accéder directement à la mémoire. il ne fait pas référence à l’appel de DLL ou d’interfaces C ++ natives.

Autres conseils

Il vous permet d’utiliser le fichier "non sécurisé". bloquer.

unsafe(...)
{
}

Cela concerne simplement l'utilisation de blocs unsafe (où des pointeurs peuvent être utilisés). Il ne régit pas P / Invoke.

Il est nécessaire d’utiliser le contexte unsafe {}. Auparavant, il fallait utiliser sizeof (), mais dans les versions ultérieures, ce n'est plus vrai.

Vous n'avez pas besoin d'autoriser le code non sécurisé si vous externalisez vers une autre DLL écrite dans un autre langage comme C.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top