SORU
24 EKİM 2008, Cuma


C değişken null veya boş bir oturum belirlemek için en iyi yolu nedir#?

ASP.NET C oturumu bir değişkenin varlığını kontrol etmek için en iyi yolu nedir#?

Dizeleri String.IsNullOrEmpty works kullanıyorum ve eğer Session benzer bir yöntem olsaydı orada olduğunu merak etti. Şu anda benim bildiğim tek yol

 var sSession;
 if (Session["variable"] != null)
 {
     sSession = Session["variable"].ToString();
 }
 else
 {
     sSession = "set this";
     Session["variable"] = sSession;
 }

CEVAP
24 EKİM 2008, Cuma


Başkalarının söylediklerini takip etmek. İki katman var eğilimindedir:

Çekirdek katmanı. Bu hemen hemen tüm web uygulama projeleri için eklenen bir DLL içinde. Bu Oturum durumunu alıcılar için zor bir iş midir belirleyiciler hangi SessionVars bir Dersim var. Aşağıdaki gibi bir kod içerir:

    public class SessionVar
    {
    static HttpSessionState Session
    {
        get
        {
            if (HttpContext.Current == null)
                throw new ApplicationException("No Http Context, No Session to Get!");

            return HttpContext.Current.Session;
        }
    }

    public static T Get<T>(string key)
    {
        if (Session[key] == null)
            return default(T);
        else
            return (T)Session[key];
    }

    public static void Set<T>(string key, T value)
    {
        Session[key] = value;
    }
    }

Herhangi bir tür almak için jenerik unutmayın.

O zaman ben de/Belirleyiciler sık sık dize ile çalışmayı tercih beri Alıcıları ekleyin.Değişkenler Kullanıcılara sunulmuş yerine boş boş.

e.g:

public static string GetString(string key)
    {
        string s = Get<string>(key);
        return s == null ? string.Empty : s;
    }

    public static void SetString(string key, string value)
    {
        Set<string>(key, value);
    }

.

Ben o uzak soyut ve uygulama modeli getirmek için mahfazalar oluşturmak. Eğer müşteri detay var, örneğin:

public class CustomerInfo
{
    public string Name
    {
        get
        {
            return SessionVar.GetString("CustomerInfo_Name");
        }
        set
        {
            SessionVar.SetString("CustomerInfo_Name", value);
        }
    }
}

Fikir değil mi? :)

NOT:Sadece kabul cevabı için bir yorum eklerken bir düşünce vardı. Her zaman sağlamak nesneleri durumu sunucusu kullanırken Oturumu saklarken seri hale getirilebilir. Deneyin ve bir nesne jenerik web çiftlikte kullanarak kaydetmek için çok kolay olabilir ve bom. Çekirdek katmanı benim kodu kontrol eder eğer nesne seri hale getirilebilir olup olmadığını görmek için, Oturum Alıcıları ve Ayarlayıcıları şifrelenmiş başka bir yararı daha eklendi:) bu yüzden iş yerinde bir web çiftliği atanıyorum

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • magnum33563

    magnum33563

    8 NİSAN 2011
  • Make:

    Make:

    23 Mart 2006
  • steeletraining

    steeletraini

    28 NİSAN 2010