Question

Mis à part le fait que le code lui-même peut accéder à la mémoire directement. Quelles sont les autres conséquences de l'utilisation du drapeau du compilateur « / dangereux » et le mot-clé « fixe »? Y at-il frapper à effets liés à la signature de code et le déploiement de mon .exe (mon application est bureau seulement)?

(Ce n'est pas de savoir si oui ou non je devrais faire cela, le pourquoi est couvert dans ma question ici )

Était-ce utile?

La solution

Le code non protégé ne sont pas vérifiables, donc vous devez être au courant de cela. Dans un environnement plein confiance, ce n'est pas une grosse affaire, mais si vous avez d'autres environnements qui ont un jeu d'autorisations plus restreint, cela pourrait vous avoir un impact là.

Autres conseils

Vous pouvez mettre les implications en deux seaux.

La première est la façon dont elle affecte votre environnement d'application. L'utilisation du code non sécurisé exige que votre assemblée soit exécuté dans un environnement de confiance totale. Il est impossible de fonctionner dans un environnement restreint comme certains Cliquez Une fois les paramètres de sécurité. La raison étant que le code dangereux empêche le CLR de garantir la sécurité de type. Cliquez une fois que sans restrictions de sécurité ne devrait pas avoir un problème.

Le second est ce que cela signifie pour la façon dont vous le code. L'utilisation du code non sécurisé implique généralement l'utilisation de pointeurs et en particulier les utiliser pour marshalling effectué avancée via PInvoke. Il n'y a rien d'intrinsèquement mauvais avec l'une de ces actions cependant. Il faut juste beaucoup plus de compréhension du CLR et que le code marshalling « sûr » ne. épinglage d'objets est un excellent exemple de connaissances que vous aurez besoin d'avoir une bonne compréhension avant de commencer à utiliser ces fonctionnalités.

Pour ajouter à la référence de Jared objet épingler ...

Lors de l'utilisation des pointeurs pour accéder à la mémoire directement en C #, vous êtes vulnérable au déplacement d'un objet CLR autour de la mémoire lors de l'exécution. Cela signifie que votre pointeur peut tout d'un point soudain à la mauvaise section de la mémoire. fixe mot-clé sera la broche de l'objet dans la mémoire de telle sorte que ce problème peut être évité.

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