Bu hatayı çok sık olmamakla beraber şu şekilde alabiliriz :
Katman bastırılırken windows un culture ı diyelimki İngilizce olsun, sonra katmanı kullanan bir yazılım diyelimki Turkce bir culture da çalışsın. Böyle bir durumda ; nettiers olası case sensitive lik sorununu çözebilmek adına Find(…) methoduna aldığı whereclause u ToLower() yaptığı için; bastırdığı zamanki ToLower() büyük I ları küçük i ye çevirirken çalışma anındaki ToLower() Türkçe culture olduğu için büyük I ları küçük ı ya çevirecektir. böylece aslında bizim yıllardır çalışan katmanımız , bir şekilde katman basılan makinedeki culture değişikliğinden dolayı proje patlaklar vermeye başlayacaktır.
Çözüm basittir çalışma ortamındaki culture ile katmanın basıldığı makinedeki culture ı herzaman için aynı tutmak.
Not: Windows forms projelerimizde Culture kullanıcının ayarlarından otomatik olarak alınmaktadır. Buda bizim işimizi zaman zaman bozabilir. Bunu önlemek adına programın main bloğuna aşağıdaki kodu ekleyerek projemizin çalışma anındaki culture ı kendimiz sabit bir değer olarak belirleyebiliriz.
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("tr-TR");
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("tr-TR");
Son Yorumlar