I seemed to figure it out. Still don't CLEARLY understand why though ;)
<WebMethod()> _
Public Function HelloWorld() As ArrayList
If Context.Cache("strArray") Is Nothing Then
CreateCache()
End If
Dim arrReturnList As ArrayList = CType(Context.Cache("strArray"), ArrayList)
Context.Cache.Remove("strArray")
Return arrReturnList
End Function
<WebMethod()> _
Public Sub FillCache(ByVal strValue As String)
If Context.Cache("strArray") Is Nothing Then
CreateCache()
End If
strArray = CType(Context.Cache("strArray"), ArrayList)
strArray.Add(strValue)
Context.Cache.Add("strArray", strArray, Nothing, Now.AddHours(1), Nothing, Caching.CacheItemPriority.High, Nothing)
End Sub
Private Sub CreateCache()
strArray.Add("StarterValue")
Context.Cache.Add("strArray", strArray, Nothing, Now.AddHours(1), Nothing, Caching.CacheItemPriority.High, Nothing)
End Sub