如何在不同的应用程序之间共享单个静态类代码
本文关键字:共享 之间 单个 静态类 代码 应用程序 | 更新日期: 2023-09-27 18:36:53
简单来说,我想为加密/解密编写一个类,该类将被同一服务器上的不同Web应用程序使用。此外,此类的所有方法也是静态的。
我将创建的 dll 放在 GAC 中。但是,似乎每个应用程序都在内存中创建自己的加密对象。
为了性能和内存使用,有没有办法只拥有此类的一个实例?
谢谢
您是否真的验证了这是一个问题?这将是相当令人惊讶的。
但是不,严格来说,你不能跨应用程序共享一个实例(或静态类),你甚至不能在同一应用程序中AppDomain
之间共享一个实例(你最终会使用代理对象)。为了完成你想要的,你必须使用某种客户端-服务器架构,这几乎肯定会比加密系统本身带来更多的开销。
不可以,不能跨进程创建单一实例。
相反,您可以创建自己的进程(例如Windows服务或*NIX世界中的守护程序),然后其他人使用。对于进程间通信 (RPC),有多种方法,例如:命名管道、套接字(以及使用它们的更高应用程序协议)、读取和写入文件......
但是,请问为什么您认为每个进程的一个类会消耗这么多内存?至于性能,有更多的进程,假设它们在调用之前处于空闲状态,那么拥有许多进程应该没有区别 - 实际上它应该更快,否则你将不得不考虑并发性。