Ellenőrzött (felügyelt) források futtatható
MyStrings.resources fájl jön létre, amely tartalmazza a projekt.
Hozzáadása erőforrások VS.NET
Bizonyos szempontból, a legegyszerűbb az erőforrás egy fájl önmagában, mivel a tároló egység, a fájltípus nem játszik szerepet. Ez lehet egy kép fájl, néhány kódolt információt, és így tovább ... A kiegészítés a fájl tartalmát források talán a legegyszerűbb módja annak, hogy adjunk forrásokat a futtatható fájlt. Lássuk, hogyan lehet ezt megtenni.
Tegyük fel, a merevlemezen már elő van készítve a fájl neve Bitmap1.bmp, amely néhány képet (a fájl neve és jellege az információkat bármi lehet). Ahhoz, hogy hozzá Bitmap1.bmp fájl tartalmát egy futtatható fájlt, mint egy forrás, a következőképpen kell eljárni:
A Solution Explorer ablakban válasszon ki egy tételt megfelelő kidolgozott projektet, majd kattintson a jobb egérgombbal.
A kapott felugró menüből válassza ki a tételt «Add», majd válassza ki az elemet «hozzáadása meglévő elemet» a következő felugró menüből.
A megjelenő párbeszédpanelen válassza ki a fájlt hozzá kell adni a projekthez.
Elvégzése után az alábbi lépéseket, a fájl megjelenik a projekt fa (lásd 1. ábra)
A helyi menüben a hozzáadott fájl kiválasztásához «Tulajdonságok», amely viszont, vezet a kialakulásához «Properties» ablak, ahol beállíthatja a tulajdonságokat a fájl.
Válasszon tulajdonság «Építőanyag Action» érték «Embedded Resource» (lásd 2. ábra) .:
Miután ezeket a lépéseket, és összeállítja a tartalmát Bitmap1.bmp fájl tartalmazza a forrásokat. Ezen a módon bármelyik erőforrásra lehet építeni (az ésszerűség határain belül, természetesen) az összeg minden fájlt. Nyilvánvaló, hogy ebben az esetben nem történik intézkedés a fájl tartalma nem lehet elvégezni, az irányított erőforrás fogja másolni a fájl tartalmát.
Mint már említettük, részben a források adhatunk a források és .resources formátumban. Ehhez a következőképpen járjon el:
Ennek eredményeként ezek a cselekvések létre Visual Studio XML-fájl, tartalmának egy részét, amely látható a 4. ábrán.
Ez a fájl kiterjesztése lesz .resx, és amikor a projekt össze annak tartalmát átalakult .resources és benne van a futtatható fájlt.
Sajnos, az grid'a (lásd. 3. ábra) Visual Studio .NET hozzá .resx adatokat nem primitív típusok, például egy kép, ez gyakorlatilag lehetetlen, hogy meg lehet csinálni csak a sorszámozás adatok forrásai.
Ez különösen fontos mondani a .resx fájl adatait tartalmazó formák által létrehozott forma Designer'om. Ezek, persze, szintén tárolt erőforrásokat. De! Ezek a fájlok automatikusan generált. Ezért általában, ha hozzáadjuk a fájlok bármilyen adatot, ha újrafordítani a projektet, ezek az adatok elvesznek.
A források felhasználása a mellékletben
Egyértelmű, hogy a források létre annak érdekében, hogy ezt követően letölteni az adatokat tőlük. Erőforrásokhoz való hozzáférés végezzük útján GetManifestResourceStream módszer. Például, hogy nézze meg a korábban hozzáadott Bitmap1.bmp források, akkor a következő operátorok:
Nyilvánvaló, hogy .resource méret jött létre azzal az elvárással, hogy az adatokat lehet olvasni belőle tételesen külön erőforrás keresve ebben a formátumban lesz nevében ezt az erőforrást. Ahhoz, hogy a források, akkor a ResourceManager osztály módszerek. A két fő módszer, getString és GetObject, célja, hogy letölthető a forrásokat a vonalak és tárgyak, ill. Az alábbiakban egy példa segítségével a ResourceManager osztály objektum számára a vonal terhelés korábban hozzáadott a .resources:
Ez a módszer visszaadja nem csak egy sor bájt, és egy példányt a System.String osztályban. GetObject eljárás megállapítja erőforrás a megadott néven, létrehoz egy új példányt a tárgy és betölti (a BinaryFormatter'a) állapota az objektum. Így azt mondhatjuk, hogy a ResourceManager módszerek betöltött tárgyak a források egy bizonyos logikai neveket. Mint korábban említettük, az első helyen, ez a mechanizmus úgy lett kialakítva, hogy terhelési állapotától összetevők és azok tartalmát a tervező, mint például a Windows Forms és az ASP.NET. Alapértelmezésben tervezők próbálják szerializálni az állam a komponenseket a kódot, de vannak esetek, amikor sorba rendezés nem lehetséges a kódot. Például nehéz (és ostoba) sorosításához tartalmát a kód képeket. Amellett, hogy a tervező képes teljesen sorosításához kód mindazokat a tulajdonságokat egy komponens, komponens fejlesztőjének kell bizonyos intézkedéseket (végre TypeConverter, amely átalakítja egy példánya egy különleges besorolású leírás fokon - InstanceDescriptor). Ha nincs, és sorozatban osztály nem része, a tervező próbál sorosításához egy példányát az állami BinaryFormatter'om. Ha ez sikerül, akkor ezt rögzíti az állami .resx fájlt, és a kód helyettesíti a hívás ResourceManager.GetObject módszer. Ebben az esetben az erőforrás kap a neve a faj ImyaKomponenta.ImyaSvoystva. Például, pictureBox1 komponenst (például System.Windows.Forms.PictureBox) hajlamos fényképek típusú System.Drawing.Image. Ez a típus nem támogatja sorszámozás a kódot, de nem különösebben szükséges, mivel annak fő tartalma - ez a kép. Ezért a tervezők sorosításához ilyen típusú objektum a forrás (.resx-fájlok). Összeállítása után .resx formátumú fájlok alakítjuk .resources erőforrások nevek, amelyek megfelelnek az űrlap nevét típusú ProstranstvoImenPrinyatoePoUmolchaniyu.ImyaFormy.resources. A legelején a InitializeComponent módszer a megfelelő formában adjuk be a kódot, hogy egy példányát inicializálja ResourceManager:
és a szakasz komponenst inicializáló kódot (ebben az esetben pictureBox1) adunk a Object Push kódot erőforrás: