2016-08-26 10 views
0

イムオブジェクト..クリアリストはVbに非常に新しい

私が示したように私のseesionObjectにリストをクリアしようとすると、私は、次のエラー「オプションを禁止しに厳しい遅延バインディング」を取得します。

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

私は、私は、私のキャストは、いくつかの方法で間違っている私のためにエラーを指摘することができ、誰を想定すると、私はリストをクリアする方法を示し

DirectCast(context.MyListProperty, List(Of String)) 
CType(context.MyListProperty, List(Of String)) 

aswell、次のキャストをしようとするとエラーが解決しません?

+0

あなたがセッションでのオブジェクトの種類を格納しているされて何?セッションからそれを読むときには、コンテキストオブジェクトに対してCtypeを使用する必要があります。つまり、変数の実際の型が得られます。強く型付けされたコードです。 – Esko

+0

CType(context、MySessionObject).MyPropertyListList =新しいリスト(Of String)..このaproachは私にnullpointerも与えます – user3116167

答えて

0

常にoption strictを使用してください。をObjectから実際のタイプにキャストしない限り、MyListPropertyにアクセスできませんでした。さもなければ、VB.NETはあなたのためにそれをキャストしようとします。だからの種類を推定

MySessionObject次のとおりです。

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

2番目の行でこのアプローチでnullpointerを取得しました。 1行目のように型が "MySessionObject"になります。 – user3116167

+0

@ user3116167:このオブジェクトを以前にセッションに追加していない 'NullReferenceException'を取得した場合。 –

+0

それはそこにあるはずですが、少なくとも私は最初の質問を超えています:) 試して、いくつかのデバッグを行います.. – user3116167

関連する問題