2012-01-03 42 views
1

第三方應用程序我需要編寫Com服務器。這不是問題,但我需要COM服務器只在一個實例中運行。這個實例應該作爲一個服務來運行,這樣它就不會在每次新建時創建。COM服務器只有一個運行實例(Service,Singleton,...)

COM應用程序由vbs每次創建時創建。

Dim myCom 
Set myCom = Nothing             
Set myCom = CreateObject("MyCom.Application") 
myCom.DoAction 

Com服務器本身創建一個數據庫連接,我想連接一次而不是每次創建。

我希望你明白我的意思。如果沒有通過評論與我聯繫。謝謝。

克里斯

+0

如果你的意思是「我想多個MyCom.Application」但只有一個DatabaseConnection存在 - 那麼試試這個:創建一個具有靜態構造函數的靜態類。在ctor中創建一個DatabaseConnection的實例。對於任何/所有MyCom.Application實例,您可以調用靜態類來訪問它的單個數據庫連接。注意:這真的是你想要的行爲嗎?那麼所有用戶都會一直使用相同的連接?如果是這樣,那麼你幾乎肯定會想要實現一個鎖/池/隊列系統,以便用戶在使用之前等待連接釋放? – BlueChippy 2012-01-03 09:06:10

回答

1

ExeCOMServer看看:

ExeCOMServer封裝工藝外的一個COM服務器的骨架
C#。該類實現了單例設計模式,並且它是線程安全的。 要啓動服務器,請調用CSExeCOMServer.Instance.Run()。如果服務器運行的是 ,則該函數將直接返回。

相關問題