2011-04-18 16 views
9

Kullanıcılar web siteme bağlandığında dilleri değiştirebilmem için tarayıcı dilini bulmak istiyorum. Ama tarayıcılar seçeneklerinde dilinde doldurulmuş bir kullanıcı has not Hep hatayı önlemek olabilir NasılTarayıcı dilini algılamak ve nullreference özel durumundan kaçınmak

string browserlanguage = Request.UserLanguages[0] 

ile boş değer olsun "Nesne başvurusu bir nesnenin örneğine ayarlanmadı."

cevap

9

Request.UserLanguages != null için kontrol edin. Örneğin

:

var l = Request.UserLanguages; 
string browserlanguage = l ?? l[0] : "en"; 
// fall back to en, or set to "" or null. 

Düzenleme: (Yorumunu yeniden) Yukarıdaki başarısız olursa da, Request kendisi imkansız olduğu afaik null idi (emin olmak için Request != null kontrol edebilir?). Kodunuzda daha sonra null bir referansınız var mı? deyimi sözdizimi ne yayınlanmıştır yanlış ise

+0

Request.UserLanguages! = null u – Sjemmie

+0

Alright thk, :) – mafu

+0

harika Sadece kafaları yukarı, ve üçlü iyi çalıştı. Olmalıdır '' 'dize browerlanguage = l? l [0]: "en"; '' ' – AjayAujla

6
string lang = (Request.UserLanguages ?? Enumerable.Empty<string>()).FirstOrDefault(); 
İlgili konular