2011-01-10 5 views

答えて

2

Silverlightアプリケーションは、クライアントブラウザ上で実行されているので、あなたはそれからSessionオブジェクトにアクセスすることはできません。

セッションは、作成するセッションごとにasp.netによって作成されるオブジェクトです。セッションは、cookieまたはurlを使用してユーザーセッションを認識します。

+0

anthonywjonesの回答としてこれを行うことができます。 – Bahamut

5

セッション変数の値を取得する方法は2つあります。

最初は、SilverlightアプリケーションをホストするASPXページの生成されたHTMLに値を含めることです。 silverlightオブジェクトのInitParams<Param>タグの値を追加します。

<param name="initParams" value="myValue=<%=Server.HTMLEncode(Session["myValue"].ToString())%>" /> 

今Silverlightのコードでこの値にアクセスすることができます -

string myValue = Application.Current.Host.InitParams["myValue"]; 

上記は、最も可能性の高いシナリオです。 Silverlightアプリケーションの実行中にセッション値を変更する必要がある場合や、変数の潜在的な変更値を読み取る必要がある場合でも、状況はトリッキーです。

多くの場合、これを支援するためにWCFの作成をアドバイスします。あるいは、非常に単純なサーバー側の作業を助けることができるXmlを単純に受け入れ、返す.ashxファイルを作成する傾向があります。

0

上記のAnthonyWJonesの答えがうまくいきます。私はちょうど私の状況を少し変えなければなりませんでした。 initParams変数は、実際には、キーと値のペアであり、あなたのSilverlightコードから適切にアクセスするためのように指定する必要があります:.NET 4.5およびあたりの通りです

<param name="initParams" value="myKey1=myValue1,myKey2=myValue2" /> 

は多分これが2011年これで前の回答以降に変更しましたSilverlight 5