Erőforrások a .NET-alkalmazásokban
Szinte minden éles minőségű alkalmazásnak erőforrásokat kell használnia. Az erőforrás minden olyan nem végrehajtható adat, amely logikailag üzembe van helyezve egy alkalmazással. Előfordulhat, hogy egy erőforrás hibaüzenetként vagy a felhasználói felület részeként jelenik meg egy alkalmazásban. Az erőforrások számos formában tartalmazhatnak adatokat, például sztringeket, képeket és tárolt objektumokat. (Ha megőrzött objektumokat szeretne írni egy erőforrásfájlba, az objektumoknak szerializálhatónak kell lenniük.) Az adatok erőforrásfájlban való tárolása lehetővé teszi az adatok módosítását a teljes alkalmazás újrafordítása nélkül. Emellett lehetővé teszi az adatok egyetlen helyen történő tárolását, és szükségtelenné teszi, hogy több helyen tárolt, kemény kóddal rendelkező adatokra támaszkodjon.
A .NET átfogó támogatást nyújt az erőforrások létrehozásához és honosításához . A .NET emellett egy egyszerű modellt is támogat a honosított erőforrások csomagolásához és üzembe helyezéséhez.
Erőforrások létrehozása és honosítása
A nem honosított alkalmazásokban erőforrásfájlokat használhat adattárként az alkalmazásadatokhoz, különösen olyan sztringekhez, amelyek egyébként a forráskód több helyén is kódoltak lehetnek. Az erőforrásokat leggyakrabban szövegfájlként (.txt) vagy XML-fájlként (.resx) hozza létre, és az Resgen.exe (Erőforrásfájl-generátor) használatával bináris .resources fájlokká állítja össze őket. Ezeket a fájlokat ezután egy nyelvi fordító beágyazhatja az alkalmazás végrehajtható fájlába. További információ az erőforrások létrehozásáról: Erőforrásfájlok létrehozása.
Az alkalmazás erőforrásait adott kultúrákhoz is honosíthatja. Ez lehetővé teszi az alkalmazások honosított (lefordított) verzióinak összeállítását. Honosított erőforrásokat használó alkalmazás fejlesztésekor olyan kultúrát jelöl ki, amely semleges vagy tartalék kultúraként szolgál, amelynek erőforrásait akkor használja, ha nem áll rendelkezésre megfelelő erőforrás. A semleges kultúra erőforrásai általában az alkalmazás végrehajtható fájljában vannak tárolva. Az egyes honosított kultúrák fennmaradó erőforrásai különálló műholdas szerelvényekben vannak tárolva. További információ: Műholdas szerelvények létrehozása.
Erőforrások csomagolása és üzembe helyezése
Honosított alkalmazáserőforrásokat helyezhet üzembe műholdas szerelvényekben. A műholdas szerelvény egyetlen kultúra erőforrásait tartalmazza; nem tartalmaz alkalmazáskódot. A műholdas szerelvény üzembehelyezési modelljében egy alkalmazást hozhat létre egy alapértelmezett szerelvénysel (amely általában a főszerelvény), és egy műholdas szerelvényt minden olyan kultúrához, amelyet az alkalmazás támogat. Mivel a műholdas szerelvények nem részei a főszerelvénynek, egyszerűen lecserélheti vagy frissítheti az adott kultúrának megfelelő erőforrásokat az alkalmazás főszerelvényének cseréje nélkül.
Gondosan határozza meg, hogy mely erőforrások alkotják az alkalmazás alapértelmezett erőforrás-szerelvényét. Mivel ez a főszerelvény része, a módosításokhoz a főszerelvényt kell lecserélni. Ha nem ad meg alapértelmezett erőforrást, a rendszer kivételt fog kivenni, amikor az erőforrás-visszavételi folyamat megpróbálja megtalálni. Egy jól megtervezett alkalmazásban az erőforrások használata soha nem vethet kivételt.
További információt az Erőforrások csomagolása és üzembe helyezése című cikkben talál.
Erőforrások lekérése
Futásidőben az alkalmazás szálonként tölti be a megfelelő honosított erőforrásokat a tulajdonság által CultureInfo.CurrentUICulture megadott kultúra alapján. Ez a tulajdonságérték a következőképpen lesz származtatva:
Ha közvetlenül rendel hozzá egy CultureInfo objektumot, amely a honosított kultúrát jelöli a Thread.CurrentUICulture tulajdonsághoz.
Ha egy kultúra nincs explicit módon hozzárendelve, az alapértelmezett szál felhasználói felületi kultúrájának beolvasásával a CultureInfo.DefaultThreadCurrentUICulture tulajdonságból.
Ha egy alapértelmezett szál felhasználói felületi kultúrája nincs explicit módon hozzárendelve, akkor a helyi számítógépen lekérheti az aktuális felhasználó kulturális környezetét. A Windows rendszeren futó .NET-implementációk ezt a Windows-függvény
GetUserDefaultUILanguage
meghívásával hajtják végre.
Az aktuális felhasználói felületi kultúra beállításával kapcsolatos további információkért tekintse meg a CultureInfoCultureInfo.CurrentUICulture referenciaoldalakat.
Ezután az osztály használatával System.Resources.ResourceManager lekérheti az aktuális felhasználói felületi kultúrához vagy egy adott kultúrához tartozó erőforrásokat. Bár az ResourceManager osztályt leggyakrabban erőforrások beolvasására használják, a System.Resources névtér további típusokat tartalmaz, amelyekkel lekérheti az erőforrásokat. Ezek közé tartoznak:
Az ResourceReader osztály, amely lehetővé teszi a szerelvénybe beágyazott vagy különálló bináris .resources fájlban tárolt erőforrások számbavételét. Akkor hasznos, ha nem ismeri a futásidőben elérhető erőforrások pontos nevét.
Az ResXResourceReader osztály, amely lehetővé teszi, hogy erőforrásokat kérjen le egy XML-fájlból (.resx).
Az ResourceSet osztály, amely lehetővé teszi egy adott kultúra erőforrásainak lekérését tartalék szabályok betartása nélkül. Az erőforrások szerelvényben vagy különálló bináris .resources fájlban tárolhatók. Olyan implementációt IResourceReader is fejleszthet, amely lehetővé teszi, hogy az ResourceSet osztály használatával erőforrásokat kérjen le más forrásból.
Az ResXResourceSet osztály, amely lehetővé teszi egy XML-erőforrásfájl összes elemének beolvasását a memóriába.