6

セッションに次のようなカスタム クラスのオブジェクトを割り当てました。

Services Obj = getServiceDetails(3); //getting all data of Service where Id = 3
Session["ServiceObj"] = Obj;

今、モデルクラスの同じクラスの別のオブジェクトにその値を割り当てたいと思います。やり方がわかりません。

私は試しましたが、それは有効な方法ではありません.:

Services oldObj = <Services>Session["ServiceObj"];

助けてください。やり方がわかりません。

4

6 に答える 6

2

あなたが使用する必要がありますServices oldObj = (Services)Session["ServiceObj"];

それ以外のServices oldObj = <Services>Session["ServiceObj"];

于 2013-05-29T06:35:49.477 に答える
1

このようにクラスでキャストします

Services obj = (Services)Session["ServiceObj"];
于 2013-05-29T06:38:16.000 に答える
1

次のように、拡張メソッドなどを使用して、ジェネリックを使用して型付きデータの取得をリファクタリングすることもできます。

public static class MyExtensions
{
    public static T GetTypedVal<T>(this HttpSessionState session, string key)
    {
        var value = session[key];
        if (value != null)
        {
            if (value is T)
            {
                return (T)value;
            }
        }
        throw new InvalidOperationException(
                     string.Format("Key {0} is not found in SessionState", key));
    }
}

次のように、参照型と値型に使用できます。

    Session["Value"] = 5;
    var valResult = Session.GetTypedVal<int>("Value");

    Session["Object"] = new SomeClass() { Name = "SomeName" };
    var objResult = Session.GetTypedVal<SomeClass>("Object");
于 2013-05-29T06:58:04.880 に答える