2016-08-26 2 views
0

Im sehr neu Vb ..Clear List in Session-Objekt

bekomme ich folgende Fehler 'Option Strict On späte Bindung nicht zulässt', wenn ich versuche, eine Liste in meinem seesionObject klar wie gezeigt.

Private Sub ClearSessionList() 
    Dim context As Object = System.Web.HttpContext.Current.Session("MySessionobject") 
    context.MyListProperty = New List(Of String) 
End Sub 

Der Fehler bestehen bleiben, wenn ich als gut

folgende Abgüsse versuchen
DirectCast(context.MyListProperty, List(Of String)) 
CType(context.MyListProperty, List(Of String)) 

Ich nehme meine Casts in irgendeiner Weise falsch sind, kann jeder, der für mich den Fehler hinweisen kann, und zeigen, wie ich die Liste löschen können ?

+0

Was die Art des Objekts sind Sie in der Sitzung zu speichern? Sie müssen Ctype für das Kontextobjekt verwenden, wenn Sie das aus der Sitzung lesen. Auf diese Weise erhalten Sie einen echten Typ für Ihre Variable und ihren stark typisierten Code. – Esko

+0

CType (Kontext, MySessionObject) .MyPropertyListList = Neue Liste (von String) .. Dieser Ansatz gibt mir auch einen Nullzeiger – user3116167

Antwort

0

Verwenden Sie immer option strict, dann können Sie nicht auf MyListProperty zugreifen, bis Sie context von Object zu seinem tatsächlichen Typ nicht gegossen haben. Andernfalls wird VB.NET versuchen, es für Sie zu übertragen, manchmal mit seltsamen Ergebnissen.

vorausgesetzt So die Art der es MySessionObject ist:

Dim context As Object = System.Web.HttpContext.Current.Session("MySessionobject") 
Dim myObj As MySessionObject = DirectCast(context, MySessionObject) 
myObj.MyListProperty.Clear() 
+0

Ich bekomme jetzt einen Nullpointer mit diesem Ansatz in der zweiten Zeile. Der Typ wäre "MySessionObject" wie in Zeile 1 – user3116167

+0

@ user3116167: Wenn Sie eine 'NullReferenceException' erhalten, haben Sie dieses Objekt nicht zuvor zur Sitzung hinzugefügt. –

+0

Es sollte da sein, aber atleast habe ich über die ursprüngliche Frage hinaus :) Will versuchen und einige Debugging auf es tun .. – user3116167