Session對象慎用Delete關鍵字

 今天剛遇到的問題。

類的方法中,聲明瞭NotesSession。方法結束時Delete Session會造成引用該類的代理中Session的丟失。該Session爲全局變量。示例代碼如下。

 

Agent TestAgent

 

Option Public

Use 
"TestClass"

Dim s As NotesSession

Sub Initialize

Set s = New NotesSession

Msgbox "TestAgent:" & s.EffectiveUserName

Dim t As New TestSession

Call t.destorySession

Delete t

Msgbox "TestAgent:" & s.EffectiveUserName '運行到這裏會出錯,Session已丟失

End Sub

 

 

 

Script TestClass

 

 

Option Public

Class TestSession

Sub destorySession

Dim s As New NotesSession

Msgbox "TestSession:" & s.EffectiveUserName

Delete s 
'去掉就沒有問題了

End Sub

End Class

 

 

去掉Delete s或者改爲Call s.close後問題解決。

該問題與變量聲明無關。即使代理和類中的兩個session聲明爲不同變量名稱(如分別爲sss),問題仍然存在。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章