Aracılığıyla paylaş


.NET uygulamalarındaki kaynaklar

Neredeyse tüm üretim kalitesindeki uygulamalar kaynakları kullanmak zorunda. Kaynak, bir uygulamayla mantıksal olarak dağıtılan yürütülemez verilerdir. Bir kaynak uygulamada hata iletileri olarak veya kullanıcı arabiriminin bir parçası olarak görüntülenebilir. Kaynaklar dizeler, görüntüler ve kalıcı nesneler de dahil olmak üzere bir dizi biçimde veri içerebilir. (Kalıcı nesneleri bir kaynak dosyasına yazmak için nesnelerin serileştirilebilir olması gerekir.) Verilerinizi bir kaynak dosyasında depolamak, uygulamanızın tamamını yeniden derlemeden verileri değiştirmenize olanak tanır. Ayrıca verileri tek bir konumda depolamanıza olanak tanır ve birden çok konumda depolanan sabit kodlanmış verilere güvenme gereksinimini ortadan kaldırır.

.NET, kaynakların oluşturulması ve yerelleştirilmesi için kapsamlı destek sağlar. Ayrıca.NET, yerelleştirilmiş kaynakları paketlemek ve dağıtmak için basit bir modeli destekler.

Kaynakları oluşturma ve yerelleştirme

Yerelleştirilmemiş bir uygulamada, özellikle de kaynak kodundaki birden çok konumda sabit kodlanmış olabilecek dizeler için, kaynak dosyalarını uygulama verileri için depo olarak kullanabilirsiniz. En yaygın olarak, kaynakları metin (.txt) veya XML (.resx) dosyaları olarak oluşturur ve bunları ikili .resources dosyalarında derlemek için Resgen.exe (Kaynak Dosya Oluşturucu) kullanırsınız. Bu dosyalar daha sonra bir dil derleyicisi tarafından uygulamanın yürütülebilir dosyasına eklenebilir. Kaynak oluşturma hakkında daha fazla bilgi için bkz. Kaynak dosyaları oluşturma.

Ayrıca uygulamanızın kaynaklarını belirli kültürler için yerelleştirebilirsiniz. Bu, uygulamalarınızın yerelleştirilmiş (çevrilmiş) sürümlerini oluşturmanıza olanak tanır. Yerelleştirilmiş kaynakları kullanan bir uygulama geliştirirken, uygun kaynaklar mevcut değilse kaynakların kullanılacağı nötr veya yedek kültür işlevi görecek bir kültür belirlersiniz. Genellikle, nötr kültürün kaynakları uygulamanın yürütülebilir dosyasında depolanır. Tek tek yerelleştirilmiş kültürler için kalan kaynaklar tek başına uydu derlemelerinde depolanır. Daha fazla bilgi için bkz. Uydu derlemeleri oluşturma.

Kaynakları paketleme ve dağıtma

Yerelleştirilmiş uygulama kaynaklarını uydu derlemelerine dağıtırsınız. Uydu derlemesi tek bir kültürün kaynaklarını içerir; herhangi bir uygulama kodu içermez. Uydu derleme dağıtım modelinde, uygulamanın desteklediği her kültür için bir varsayılan derleme (genellikle ana derleme) ve bir uydu derlemesi içeren bir uygulama oluşturursunuz. Uydu derlemeleri ana derlemenin parçası olmadığından, uygulamanın ana derlemesini değiştirmeden belirli bir kültüre karşılık gelen kaynakları kolayca değiştirebilir veya güncelleştirebilirsiniz.

Hangi kaynakların uygulamanızın varsayılan kaynak derlemesini kuracağını dikkatle belirleyin. Ana derlemenin bir parçası olduğundan, bu derlemedeki tüm değişiklikler ana derlemeyi değiştirmenizi gerektirir. Varsayılan bir kaynak sağlamazsanız, kaynak geri dönüş işlemi kaynağı bulmaya çalıştığında bir özel durum oluşur. İyi tasarlanmış bir uygulamada, kaynakların kullanılması hiçbir zaman özel durum oluşturmamalıdır.

Daha fazla bilgi için Kaynakları Paketleme ve Dağıtma makalesine bakın.

Kaynakları alma

Çalışma zamanında bir uygulama, CultureInfo.CurrentUICulture özelliğinin belirttiği kültüre göre her iş parçacığı için uygun yerelleştirilmiş kaynakları yükler. Bu özellik değeri aşağıdaki gibi türetilir:

  • Yerelleştirilmiş kültürü temsil eden bir CultureInfo nesneyi doğrudan Thread.CurrentUICulture özelliğine atayarak.

  • Bir kültür açıkça atanmadıysa, CultureInfo.DefaultThreadCurrentUICulture özelliğinden varsayılan iş parçacığı kullanıcı arabirimi kültürü alınarak.

  • Varsayılan iş parçacığı UI kültürü açıkça atanmamışsa, yerel bilgisayarda geçerli kullanıcı için kültürü alarak belirlenir. Windows üzerinde çalışan .NET uygulamaları bunu Windows GetUserDefaultUILanguage işlevini çağırarak yapar.

Geçerli kullanıcı arabirimi kültürünün nasıl ayarlandığı hakkında daha fazla bilgi için CultureInfo ve CultureInfo.CurrentUICulture başvuru sayfalarına bakın.

Daha sonra System.Resources.ResourceManager sınıfını kullanarak geçerli UI kültürüne veya spesifik bir kültüre yönelik kaynakları alabilirsiniz. ResourceManager sınıfı en yaygın olarak kaynakları almak için kullanılır, ancak System.Resources ad alanı kaynakları almak için kullanabileceğiniz ek türler içerir. Bunlar şunları içerir:

  • sınıfı ResourceReader , bir derlemeye katıştırılmış veya tek başına ikili .resources dosyasında depolanan kaynakları listelemenizi sağlar. Çalışma zamanında kullanılabilen kaynakların tam adlarını bilmediğiniz durumlarda kullanışlıdır.

  • Bahsedilen ResXResourceReader sınıfı, bir XML (.resx) dosyasından kaynak almanızı sağlar.

  • sınıfı ResourceSet , geri dönüş kurallarını gözlemlemeden belirli bir kültürün kaynaklarını almanızı sağlar. Kaynaklar bir derlemede veya tek başına ikili .resources dosyasında depolanabilir. Başka bir kaynaktan kaynak almak için sınıfını IResourceReader kullanmanıza olanak tanıyan bir ResourceSet uygulama da geliştirebilirsiniz.

  • sınıfı ResXResourceSet , bir XML kaynak dosyasındaki tüm öğeleri belleğe almanızı sağlar.

Ayrıca bakınız