Vb.net 具有嵌套子例程或函数的Visual Basic函数

Vb.net 具有嵌套子例程或函数的Visual Basic函数,vb.net,function,Vb.net,Function,我对VisualBasic非常陌生,在创建负责确保web服务代理会话仍然有效的类时遇到了一些问题。为了做到这一点,有几个方法需要调用,所以我试图找出如何将所有这些方法嵌套到一个函数中,然后在继续使用另一个方法之前返回代理对象。这是一个我试图做的伪例子 Public Shared Function CheckSession(ByVal cookie As String) As ServiceProxy 'first check if cookie is still valid calling o

我对VisualBasic非常陌生,在创建负责确保web服务代理会话仍然有效的类时遇到了一些问题。为了做到这一点,有几个方法需要调用,所以我试图找出如何将所有这些方法嵌套到一个函数中,然后在继续使用另一个方法之前返回代理对象。这是一个我试图做的伪例子

Public Shared Function CheckSession(ByVal cookie As String) As ServiceProxy

'first check if cookie is still valid calling one service method
Sub CheckCookie()
Dim ap As AuthenticationProxy = New AuthenticationProxy
AddHandler ap.CheckCookieCompleted, AddressOf CheckCookieCallback
ap.CheckCookieAsync(cookie)
End Sub
Sub CheckCookieCallback(ByVal sender as Object, ByVal e As CheckCookieCompletedEventArgs)
Dim result as Boolean = e.Results.status

'from here based on session status I will either finish the function or move on to another method for getting a new cookie from the server

'at the end of the function I will have the proxy class used by other methods
End Function
因此,我想做的是,当我真正想要使用ServiceProxy时,我首先调用这个函数,如下所示(cookie字符串存储在IsolatedStorage中,但为了简单起见,我不包括所有这些,只是一个简单的示例):


这看起来像vb.net。为什么不能
CheckSession
只调用一个自包含的
CheckCookie
sub(作为函数重做)?@如果会话无效,我仍然需要嵌套一些函数和/或sub。基本上,它是这样工作的,根据服务器检查Cookie,如果Cookie仍然有效,则将Cookie添加到web服务代理中,并且可以调用该方法。如果它无效,则首先从一个服务方法发出UUID,然后将该UUID传递给下一个方法以获取新Cookie。我只是不确定如何将所有这些方法包装成一个函数,该函数将为web服务中的每个其他方法返回一个有效的cookie。
Public Sub VerifyCredentials(ByVal name as String, ByVal pass as String)
Dim proxy as ServiceProxy = CheckSession(cookie)
'''...