Megosztás a következőn keresztül:


Erőforrásnevek az MRM-ben

Az MRM minden erőforrásának van neve. Az erőforrásnevek az IETF RFC 3986 URI-nak felelnek meg.

Az MRM-ben az erőforrás neve a következő formában található:

ms-resource://<PackageFamilyName>/<Root>/<Rest...>

Hol:

  • ms-resource a séma.
  • <PackageFamilyName> a szolgáltatói, és vagy annak az alkalmazásnak a Csomagcsalád neve, amely az erőforrásokat fogja használni, vagy a csomagolatlan alkalmazásokhoz használt literális sztring "Application".
  • <Root> egyetlen elérésiút-szegmens.
  • <Rest...> egy vagy több más elérésiút-szegmens, perjelekkel elválasztva.

A lekérdezési és URI- részei nem engedélyezettek.

A rövidség kedvéért ez a dokumentáció általában a séma vagy a szolgáltató nélküli erőforrásnevekre hivatkozik (például "sztringek/foo" vagy csak "foo").

Kis- és nagybetűk érzékenysége

Bár a séma ms-resource megkülönbözteti a kis- és nagybetűket, az elérési utak nem.

Az alábbiak mindegyike egyenlő:

ms-resource:///FILES/LOGO.PNG
ms-resource:///files/logo.png
ms-resource:///FiLeS/LoGo.PnG

Az alábbiakban azonban mindkét hiba található:

MS-RESOURCE:///files/logo.png
Ms-Resource:///files.logo.png

Ha a különböző erőforrás-jelöltek különböző burkolatokat használnak, a PRI-fájlban megjelenő rendszer implementációfüggő. Ez nem számít, mivel a futtatókörnyezeti erőforrás-keresés is érzéketlen a kis- és nagybetűk között.

Hatóság

A kényelem érdekében az MRM lehetővé teszi, hogy az erőforrás-URI-k kihagyják a <PackageFamilyName>, amikor erőforrást ad hozzá egy indexelőhöz. Emellett az MRM lehetővé teszi érvényes szolgáltatói<PackageFamilyName> megadását, de az erőforrás-indexelő létrehozásakor az packageFamilyName ként megadott értékre lesz lecserélve (további információ: MrmCreateResourceIndexer).

Tegyük fel például, hogy az erőforrás-indexelő a packageFamilyName"MyApp" lett létrehozva, akkor az alábbi erőforrás-URI-k mindegyike egyenértékű:

ms-resource://MyApp/strings/foo     // Canonical form.
ms-resource:///strings/foo          // Omit the PFN.
ms-resource://App2/strings/foo      // PFN "App2" is ignored.

Ösvény

Amint azt a fenti egyszerűsített nyelvhelyesség is jelzi, az MRM-ben az összes erőforrásnévnek legalább két elérési útszegmenssel kell rendelkeznie, <Root> és <Rest...>. Hiba, ha egyetlen elérésiút-szegmens szerepel az erőforrásnévben, vagy az erőforrás neve perjellel végződik. A következő hibák lépnek fel:

ms-resource///hello                 // Error, only one path segment
ms-resource///strings/hello/        // Error, ends with a slash

Az URI teljes hosszának korlátain (általában körülbelül 2000 karakter) kívül nincs gyakorlati korlátja az elérésiút-szegmensek számának. A következők mindegyike érvényes erőforrásnév:

ms-resource:///strings/hello
ms-resource:///files/assets/logo.png
ms-resource:///food/baked/muffins/lemon.and.blueberry/gluten_free

Egyezmények

Bár semmiképpen sem szükséges, a pri-fájlokban a következő konvenciók használatosak.

  • A sztringerőforrások a "sztringek" <RootPath>lesznek hozzáadva.
  • A fájlerőforrások a "fájlok" <RootPath>lesznek hozzáadva.
  • A tárolók újraszolgáltatásai (például egy resw-fájlból származó erőforrások) hozzáadódnak az "erőforrások" <RootPath>.

Vegye figyelembe, hogy az XAML honosítása az "erőforrások" konvenciótól függ (további információkért lásd x:Uid irányelv), és más kódtárak is függhetnek ezektől a konvencióktól.

Erőforrások elnevezése tárakhoz

Amikor pri-fájlokat hoz létre, hogy egy újraterjeszthető tár része legyen, fontos olyan erőforrásneveket választani, amelyek valószínűleg nem ütköznek a szülőalkalmazás (vagy más kódtárak) nevével. Ennek az az oka, hogy egy alkalmazás összes erőforrása (beleértve a függő kódtárak erőforrásait is) egyetlen PRI-fájlba egyesül a buildeléskor – további információért tekintse meg MrmIndexResourceContainerAutoQualifiers. Ha ugyanazt az erőforrásnevet használja a fő alkalmazás és annak egyik kódtára (vagy két kódtár), akkor a PRI létrehozásakor hiba történik.

Ennek elkerülése érdekében fontolja meg az erőforrások egyedi szegmenst tartalmazó elérési útként való elnevezését, például a vállalat fordított DNS-nevét vagy GUID-azonosítóját.