Net, források honosított alkalmazások
Erőforrások, mint a képek és a szöveg táblázatokat lehet elhelyezni a forrás fájlokat vagy alárendelt egységet. Ezek a források nagyon hasznos lehet lokalizálása alkalmazások és .NET kínálják natív támogatást biztosít a keresési lokalizált források.
Mielőtt megnézzük, hogyan kell használni forrásokat lokalizálni a kérelmet először ismerkedjen meg a módszerek létrehozásának és olvasás források figyelembe vétele nélkül a nyelvi szempontok.
Létrehozása erőforrás fájl
Az erőforrás fájlok tárolhatók elemeket, mint a képek és táblázatok a sorok. Mint erőforrás fájl lehet egyszerű szöveges fájl vagy a kiterjesztés .resx, amely felhasználja az XML. Ez a cikk először vizsgálja változata egy egyszerű szöveges fájl.
Az erőforrás táblázat tartalmazza sorok hozhatunk létre egy sima szöveges fájl. Ebben a fájlban egyszerűen tette a találkozó line switch. Kulcsrakész értetődő nevet, hogy lehet használni a programban, így a megfelelő értékeket. A kulcsok és értékek használata terek.
Az alábbiakban egy példát: létrehozunk egy egyszerű táblázat sorait:
közüzemi Resgen.exe
Mert az hogy a ***. Txt fájl erőforrások, akkor egy speciális segédprogramot generációs Resgen.exe erőforrás fájlokat. Például a következő parancs:
kialakulásához vezet, MyResources.resources fájlt. Által generált ez a típus erőforrás alábbi fájlt akkor sem adja hozzá a szerelvény, mint egy külső fájlt, vagy illessze be a DLL vagy EXE szerelvény. Resgen segédprogram támogatja a képesség, hogy az erőforrás fájlokat XML formátumban kiterjesztésű .resX. Ez vonatkozik ez nagyon egyszerű:
Ez a parancs létrehoz egy erőforrás XML-fájl neve MyResources.resX.
Resgen segédprogram erősen típusos források. Erősen típusos erőforrás képviselteti magát, mint egy osztály, amely hozzáférést biztosít a források. Létrehozásához ennek az osztálynak a segédprogram lehetőséget Resgen / str:
Miután options / str kell adni a nyelvet, névtér, osztály nevét és a forrás fájl nevét, és ebben a sorrendben.
Képes felvenni a képeket Resgen segédprogram nem támogatja. Példák .NET Framework SDK van például ResXGen az oktató. A ResXGen akkor nézze meg a képet .resX fájlt. Add a képek is más programból vagy osztályok ResourceWriter ResXResourceWriter, amint azt a későbbiekben látni fogjuk.
osztály ResourceWriter
Ahelyett, hogy az eszköz használata létrehozni Resgen forrásfájlok, akkor írj egy speciális, amely lehetővé teszi, hogy ezt a programot. Class ResourceWriter helyet System.Resources név létrehozásához használt bináris forrásfájlok, és ResXResourceWriter osztály -, hogy hozzon létre egy XML-alapú forrás fájlokat. Mindkét osztályok támogatják képes felvenni a képeket, vagy bármely más sorozatban tárgyakat. Ha ResXResourceWriter osztály alkalmazásokat kell utalni az összeállítás System.Windows.Forms.
Az alábbi kódot a példa azt mutatja, hogyan lehet létrehozni egy objektumot megnevezés ResXResourceWriter rw a Demo.resx fájlt. Miután létrehozta a példány módszerrel AddResource () ResXResourceWriter osztály kezdenek hozzá egy sor források, összesen legfeljebb 2 GByte. Az első érv AddResource () segítségével adja meg a nevét, a forrás, és a második - értéket. kép forrás adhatunk használata révén fényképek osztály példányát. Ahhoz, hogy képes legyen használni az osztály kép, utalni kell a szerelvény System.Drawing, és adjunk hozzá egy használó irányelvet, hogy nyissa ki a System.Drawing névtérben.
Itt Image objektum jön létre megnyitásával logo.gif fájlt, így meg kell, hogy vagy másolja át a képfájlt egy végrehajtható program, vagy adja meg a teljes elérési utat meg azt ImageToFile (). alkalmazásával nyilatkozat azt jelzi, hogy a kép forrás automatikusan megsemmisült végén a használó blokk.
Később ResXResourceWriter tárgy egészíti egyszerű szöveges erőforrások. Végén az eljárás következő (class ResXResourceWriter) automatikusan hívja ResXResourceWriter.Generate () az erőforrás rekordok Demo.resx file:
A dob a kis program vezet létrehozását Demo.resx erőforrás képfájl logo.gif belül.
Használata forrás fájlokat
Hozzá a projekt forrás fájlt korábban létrehozott Demo.resx, megnyílt a Solution Explorer menüből válassza ki az elemet a Hozzáadás -> Hozzáadás létező elemet (Add -> Hozzáadás létező pont). Alapértelmezett tulajdonság Építőanyag Action (Akció elrendezés) az erőforrás beállítása Beágyazott Resource (beágyazott forrás) jelzi, hogy az erőforrás kell ágyazni a kimeneti egységet.
Később a projekt beállításait (választotta a bejelentés -> Assembly adatok (Application -> Információk a szerelvény)) kell beállítani, mint egy paraméter értéke semleges Language (nyelv semleges) a fő nyelv:
Megváltoztatása paraméter értéke eredményezi hozzáadásával assemblyinfo.cs attribútumfájlt [NeutralResourceLanguageAttribute]. az alábbiak szerint:
Beállítása az attribútum értékét ResourceManager termelékenység javítása, mivel ez lehetővé teszi számára, hogy gyorsan megtalálja a forrásokat en-US, valamint, hogy használja őket, mint az alapértelmezett beállítás. Ez az attribútum is megadhatja elhelyezése az alapértelmezett erőforrás használata révén a második paraméter a kivitelező. Mivel megadhatja a transzfer UltimateResourceFallbackLocation, hogy ő kell helyezni a fő egységet (érték MainAssembly), vagy a téma (Satellite érték).
Ahhoz, hogy hozzáférjen a beágyazott felhasznált erőforrás ResourceManager osztály, amely található a tér System.Resources neveket. A kivitelező az ebbe az osztályba tartozó érvként, akkor át a nevét a szerelvény, amely tartalmazza a forrásokat.
Ebben a példában a források vannak építve a futtatható szerelvény, azonban a második érve a kivitelező az eljárás eredményét Assembly.GetExecutingAssembly () továbbítani kell. Az első argumentum a gyökér forrás neve, amely egy névtér nevét és a forrás fájlt, de nem bővül források. Mint korábban jeleztük, ez a név is mutatja a ildasm közművek és egyszerűen távolítsa el a forrásokat bővítő. A név is megkaphatjuk algoritmikusan alkalmazásával GetManifestResourceNames módszerrel (System.Reflection.Assembly osztály):
névtér System.Resources
Nézzük röviden végig az összes osztályt, mely tartalmazta a térben System.Resources nevek és lehetővé teszi, hogy működjön együtt a források.
Ezt fel lehet használni, így a kapcsolódó erőforrások a jelenlegi kultúra a szerelvény vagy erőforrás fájlokat. A ResourceManager kaphat egy csomó források egy adott kultúra egy példány ResourceSet.
Ez lehetővé teszi, hogy képviselje egy sor források egy adott kultúrában. Amikor létrehoz egy példányt állít ResourceSet felsorolás osztály, felismerve IResourceReader felület és tárolja az összes erőforrás a hash.
ResourceSet használják felsorolni források. ResourceReader osztály megvalósítja ezt a felületet.
Létrehozásához használt erőforrás fájl és végrehajtja IResourceWriter felület.
Osztályok ResXResourceSet, ResXResourceReader és ResXResourceWriter
Hasonló a ResourceSet osztályok és ResourceReader ResourceWriter, de nem arra szolgálnak, hogy hozzon létre egy bináris erőforrás fájl, hanem .resx XML-fájlt. Ahelyett, beágyazza a forrás XML-fájl, hogy lehetővé teszi, hogy adjunk egy linket, hogy a ResXFileRef.
névtér System.Resources.Tools
Ez tartalmazza osztály StronglyTypedResourceBuilder, amelyeket fel lehet használni, hogy hozzon létre egy osztály a forrás.