2013-10-25 44 views
0

簡而言之,我想寫一個加密/解密類,它將被不同的Web應用程序在同一臺服務器上使用。此外,這個類的所有方法也是靜態的。如何在不同的應用程序中共享一個靜態類代碼

我把創建的dll放到GAC中。但是,似乎每個應用程序都在內存中創建自己的加密對象。

爲了性能和內存的使用,是否有任何方法只有一個這個類的實例?

謝謝

+3

Srsly ..你的加密程序離開有多大的足跡?你確認這是一個問題嗎? –

回答

1

您是否真的驗證過這是一個問題?這將是相當令人驚訝的。

但是,嚴格來說,不能跨應用程序共享實例(或靜態類) - 甚至不能在同一應用程序中跨越AppDomains共享一個實例(最終使用代理對象)。爲了達到你想要的,你必須使用某種客戶端 - 服務器架構,這幾乎肯定會引入比加密系統本身更多的開銷。

1

,你不能跨進程創建單例。

改爲您可以創建自己的進程(例如Windows服務或* NIX世界中的守護進程),以供其他人使用。對於進程間通信(RPC)有各種方法,例如:命名管道,套接字(以及使用這些較高的應用協議),讀取和寫入文件...

然而,請問爲什麼你認爲每個進程的類會消耗太多的內存嗎?至於性能,事實上有更多的進程,假設它們一直處於空閒狀態直到被調用,應該沒有多少差別 - 事實上它應該更快,否則你將不得不考慮併發性。

相關問題