J'ai une application C# qui utilise une DLL que j'ai faite et je dois stocker 3 variables dans la DLL qui doivent être constantes afin que je puisse les obtenir plus tard, même après que l'utilisateur ferme le programme (je dois obtenez-leur chaque exécution après que j'écrive les données à la DLL). Je veux les stocker dans la DLL parce que je ne veux pas utiliser le registre ou utiliser des fichiers externes donc je pensais utiliser un fichier de ressources dans la DLL pour lire/écrire mes données statiques. Quelqu'un peut-il me donner un exemple de comment utiliser les données de ressources comme ceci ou suggérer une autre façon de le faire sans déclarer les variables codées en dur (que je ne peux pas faire), ou utiliser les fichiers de registre/externes pour stocker l'information.Constantes données entre les exécutions
Répondre
Utilisez un fichier mappé en mémoire standard. L'écriture dans des exécutables binaires est une mauvaise pratique et de nombreux systèmes d'exploitation (sinon tous) interdiront cela dans tous les paramètres de politique de sécurité, sauf les plus respectueux.
PS. Le terme populaire pour ce type de stockage est «base de données» (ou base de données du programme). Cela devrait vous aider à obtenir quelques hits google. En outre, en fonction de votre méthode d'implémentation préférée, vous pouvez utiliser le mappage de mémoire pour superposer votre segment de données (vous pouvez ainsi avoir votre gâteau et le manger: gardez les données statiques globales où elles sont et sur le disque). Cependant, c'est plus dans l'esprit C/C++.
Dans .NET, vous devriez utiliser un struct géant mise en page personnalisée (ce qui signifie, tous les types de référence sont hors de question - ce qui est plus naturel en C# que dans, disons, C++)
Donc, votre meilleur pari est probablement d'utiliser un UnmanagedMemoryStream
, sérialiser vos données en utilisant .NET System.Runtime.Serialization
(dont la saveur XML est de loin la plus populaire et facilement copiée à partir de blogs et d'autres sources).
Vive
Je suggère d'utiliser Isolated storage pour écrire vos données. Vous pouvez avoir un démarrage rapide here.
- 1. Enregistrement de Javadoc entre les exécutions
- 2. Java Character IO entre les exécutions java
- 3. Persistance C#, Entre deux exécutions
- 4. Comment utiliser le même sémaphore entre les exécutions de programme?
- 5. Enregistrement et récupération des valeurs de variables entre les exécutions
- 6. Recherche dans les constantes d'énumération par des données spécifiques constantes
- 7. Quelles sont les différences entre les constantes TouchEvent?
- 8. Comparaison de virgule flottante - Résultat entre différentes exécutions
- 9. Partage des paramètres \ constantes entre les projets Python
- 10. Comment tester les scripts Ruby qui offrent des fonctionnalités entre les exécutions?
- 11. Conserver les variables persistantes en mémoire entre les exécutions du script Python
- 12. Drupal6: Où conserver les fonctions/constantes nécessaires entre plusieurs modules?
- 13. Regex texte correspondant entre deux chaînes constantes
- 14. Faire un fichier sqlite rester existant entre les exécutions du programme
- 15. Comment déterminer les modifications dans un répertoire et ses sous-répertoires entre les exécutions d'applications?
- 16. Empêche les exécutions à distance sur TeamCity?
- 17. Comment empêcher les exécutions javascript simultanées?
- 18. Comment définir correctement les constantes
- 19. Requête SQL pour les données nulles, nulles et constantes
- 20. Problème avec les constantes
- 21. Exécutions C++ compilées ÉNORME?
- 22. comment enregistrer/restaurer un formulaire et des contrôles entre les exécutions de programme?
- 23. Le cache WebView sera-t-il conservé entre les exécutions de l'application?
- 24. Sql Server Agent travail plus longtemps que l'intervalle entre les exécutions
- 25. Can Hotspot peut-il être configuré pour conserver ses statistiques entre les exécutions?
- 26. Comment faire une couverture de code xcode4 avec llvm cumulatif entre les exécutions d'applications
- 27. Effacement du cache NHibernate entre les exécutions de profilage avec NHProf
- 28. Comment l'état des tampons OpenGL peut-il persister entre les exécutions du programme?
- 29. Groovy: Comment se souvenir de la valeur de la variable de fermeture entre les exécutions?
- 30. Linux: délai entre les exécutions d'expressions régulières?/Lire chaque fichier dans le répertoire?
Woah - bonne trouvaille! J'adore SO pour ce genre de pointeur. (_J'ai le sentiment que je resterais loin de ça très franchement, mais c'est moi qui écris du code portable, je suppose.) – sehe