【问题标题】:How to share a single static class code among different applications [duplicate]如何在不同的应用程序之间共享单个静态类代码[重复]
【发布时间】:2013-10-25 04:10:12
【问题描述】:

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

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

为了性能和内存使用,有什么方法可以只拥有这个类的一个实例?

谢谢

【问题讨论】:

  • Srsly.. 您的加密程序留下了多大的足迹?您确认这是一个问题吗?

标签: c# singleton distributed-system


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-03-25
      • 1970-01-01
      • 2018-05-25
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      • 2014-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多