0

简而言之,我想为加密/解密编写一个类,它将被同一服务器上的不同 Web 应用程序使用。此外,这个类的所有方法也是静态的。

我将创建的 dll 放在 GAC 中。但是,似乎每个应用程序都会在内存中创建自己的加密对象。

为了性能和内存使用,有没有办法只拥有这个类的一个实例?

谢谢

4

2 回答 2

1

您是否真的确认这是一个问题?那将是相当令人惊讶的。

但是不,严格来说,你不能在应用程序之间共享一个实例(或静态类)——你甚至不能AppDomain在同一个应用程序中的 s 之间共享一个实例(你最终使用代理对象)。为了完成你想要的,你必须使用某种客户端-服务器架构,这几乎肯定会引入比加密系统本身更多的开销。

于 2013-10-25T04:14:22.950 回答
1

,您不能跨进程创建单例。

相反,您可以创建自己的进程(例如,Windows 服务,或 *NIX 世界中的守护进程),然后其他人使用。对于进程间通信 ( RPC ),有多种方法,例如:命名管道、套接字(以及使用它们的更高应用程序协议)、读取和写入文件......

但是,请问您为什么认为每个进程一个类会消耗这么多内存?至于性能,事实上有更多进程,假设它们在被调用之前一直处于空闲状态,那么拥有很多进程应该没有区别——实际上它应该更快,否则你将不得不考虑并发性。

于 2013-10-25T04:17:29.350 回答