Genellikle, birçok platformda, dize kaynaklarımı bir .resx veya .xml dosyasına yazıyorum ve sonra platforma bağlı bir yaklaşım kullanarak alıyorum.
Yani, iOS'ta, bunları Android'de NSBundle.MainBundle
ve kullanarak kullanıyorum Context.Resources
.
Bu yaklaşımın avantajları nelerdir ve neden kodda doğrudan erişilebilir olmamasının nedeni, örneğin:
Bir platformlar arası projede, herhangi bir platform, herhangi bir entegrasyon olmadan doğrudan erişebilir.
Bina sırasında kaynakların iyi inşa edilip edilmediğine dair herhangi bir endişe yoktur.
- Kodlayıcı, çok dilli işlem gibi işlevleri kullanabilir
Uzun lafın kısası: string kaynaklarının bu şekilde yapılandırılmasının nedeni nedir?
[Düzenle]
Diyelim ki dosyam diğer proje arasında paylaşılan bir "çekirdek" projenin parçası. (PCL, platformlar arası proje dosyası yapısını düşünün.)
Ve varsayalım ki dosyam tam olarak bir .resx / .xml dosyasına benziyor, şöyle görünüyor (xml'de profesyonel değilim, üzgünüm!): Parametreler Paramètres
Yani, bu temelde özel bir xml'dir, burada doğru dizeyi almak için anahtar / dile işaret edin.
Dosya, tıpkı bir uygulamanın içine erişilebilir herhangi bir dosyayı ve sistemin PCL kullanılarak kodlanan dize kaynaklarına erişmesi gibi uygulamanın bir parçası olacaktır. Bu, uygulamalara ek yük getirir mi?