Je cherche un meilleur moyen de transmettre des informations entre mon extension Firefox et l'application .NET. Actuellement, j'utilise des fichiers texte pour transmettre des informations d'une manière à l'application .NET en utilisant la classe FileSystemWatcher. L'application .NET surveille les nouveaux fichiers dans un répertoire spécifique lorsque l'extension Firefox y écrit, puis les informations sont stockées dans une base de données SQL Server locale. Maintenant, je veux demander des informations à partir de l'extension FF, mais je n'ai pas trouvé une bonne façon de le faire, en plus d'utiliser peut-être le presse-papiers. L'utilisation de fichiers texte est un peu maladroite, donc toute suggestion serait appréciée.communiquer entre l'extension Firefox et l'application .NET
Répondre
Si vous utilisez .net 3.5+, pensez à utiliser named pipes. J'ai vu les utiliser très efficacement pour communiquer entre une extension/plugin firefox et des applications .net en utilisant la bibliothèque/DLL correspondante. (Le plugin firefox nécessitait un peu de code C++ natif)
Une autre alternative serait d'inclure une sorte de serveur dans votre application et de laisser votre extension Firefox communiquer avec celle-ci via les sockets/tcp. Si vous utilisez HTTP comme protocole, vous pouvez communiquer en faisant des choses comme frapper http://localhost:12345/getdata?id=1 depuis votre poste. La communication via HTTP devrait être relativement simple aux deux extrémités, mais assurez-vous de faire un bon modèle de menace afin d'identifier et d'atténuer les problèmes de sécurité liés à l'exécution d'un serveur sur la boîte. Au-delà de cela, je ferais une recherche sur .net/windows IPC et je verrais ce que d'autres mécanismes IPC de windows peuvent contenir. Ils devraient être plus robustes que l'écriture de fichiers texte et de clés de registre. (Je prévois que la route du presse-papiers est très fragile.) Ce question pourrait être un bon début.
Merci pour les suggestions. Je suis allé avec l'implémentation d'un serveur HTTP. J'ai créé une classe de serveur en utilisant HttpListener dans mon application .NET et j'ai utilisé XPCOM pour les sockets dans l'extension. –