ResXResourceReader.BasePath Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví základní cestu pro relativní cestu k souboru zadanou v objektu ResXFileRef .
public:
property System::String ^ BasePath { System::String ^ get(); void set(System::String ^ value); };
public string BasePath { get; set; }
public string? BasePath { get; set; }
member this.BasePath : string with get, set
Public Property BasePath As String
Hodnota vlastnosti
Cesta, která je předpřipravena k relativní cestě k souboru zadanému v objektu ResXFileRef , získá absolutní cestu k souboru prostředku.
Výjimky
V operaci sady nelze zadat hodnotu, protože soubor prostředků XML je již přístupný a používá se.
Příklady
Následující příklad vytvoří soubor prostředků XML, který obsahuje obrázky psího plemena, a také vytvoří řetězcový prostředek, který určuje aplikaci, která prostředek vytvořila. ResXFileRef objekty se používají k ukládání cesty k obrázkům místo ukládání binárních obrázků samotných do souboru prostředků. Příklad nastaví BasePath vlastnost tak, aby relativní cesty k souborům v názvech obrázků byly interpretovány jako podadresáře adresáře s názvem C:\data\.
using System;
using System.Collections;
using System.ComponentModel.Design;
using System.Drawing;
using System.Reflection;
using System.Resources;
public class Example
{
public static void Main()
{
CreateXMLResourceFile();
// Read the resources in the XML resource file.
ResXResourceReader resx = new ResXResourceReader("DogBreeds.resx");
Console.WriteLine("Default Base Path: '{0}'", resx.BasePath);
resx.BasePath = @"C:\Data\";
Console.WriteLine("Current Base Path: '{0}'\n", resx.BasePath);
resx.UseResXDataNodes = true;
IDictionaryEnumerator dict = resx.GetEnumerator();
AssemblyName[] assemblyNames = { new AssemblyName(typeof(Bitmap).Assembly.FullName) };
while (dict.MoveNext()) {
ResXDataNode node = (ResXDataNode) dict.Value;
if (node.FileRef != null) {
object image = node.GetValue(assemblyNames);
Console.WriteLine("{0}: {1} from {2}", dict.Key,
image.GetType().Name, node.FileRef.FileName);
}
else {
Console.WriteLine("{0}: {1}", node.Name, node.GetValue((ITypeResolutionService) null));
}
}
}
private static void CreateXMLResourceFile()
{
// Define an array of ResXFileRef objects for images.
String typeName = String.Format("{0}, {1}", typeof(Bitmap).FullName,
typeof(Bitmap).Assembly.FullName);
ResXFileRef[] imageRefs =
{ new ResXFileRef(@"images\Akita.jpg", typeName),
new ResXFileRef(@"images\Dalmatian.jpg", typeName),
new ResXFileRef(@"images\Husky.jpg", typeName),
new ResXFileRef(@"images\GreatPyrenees.jpg", typeName),
new ResXFileRef(@"images\Malamute.jpg", typeName),
new ResXFileRef(@"images\newfoundland.jpg", typeName),
new ResXFileRef(@"images\Rottweiler.jpg", typeName)
};
using (ResXResourceWriter resx = new ResXResourceWriter(@".\DogBreeds.resx")) {
// Add each ResXFileRef object to the resource file.
foreach (var imageRef in imageRefs) {
// Form resource name from name of image.
String name = imageRef.FileName;
name = name.Substring(name.IndexOf(@"\") + 1);
name = name.Substring(0, name.IndexOf("."));
ResXDataNode node = new ResXDataNode(name, imageRef);
resx.AddResource(node);
}
resx.AddResource("CreatedBy", typeof(Example).Assembly.FullName);
}
}
}
// The example displays the following output:
// Default Base Path: ''
// Current Base Path: 'C:\Data\'
//
// Akita: Bitmap from C:\Data\images\Akita.jpg
// Dalmatian: Bitmap from C:\Data\images\Dalmatian.jpg
// Husky: Bitmap from C:\Data\images\Husky.jpg
// GreatPyrenees: Bitmap from C:\Data\images\GreatPyrenees.jpg
// Malamute: Bitmap from C:\Data\images\Malamute.jpg
// newfoundland: Bitmap from C:\Data\images\newfoundland.jpg
// Rottweiler: Bitmap from C:\Data\images\Rottweiler.jpg
// CreatedBy: BasePathEx1, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
Imports System.Collections
Imports System.ComponentModel.Design
Imports System.Drawing
Imports System.Reflection
Imports System.Resources
Module Example
Public Sub Main()
CreateXMLResourceFile()
' Read the resources in the XML resource file.
Dim resx As New ResXResourceReader("DogBreeds.resx")
Console.WriteLine("Default Base Path: '{0}'", resx.BasePath)
resx.BasePath = "C:\Data\"
Console.WriteLine("Current Base Path: '{0}'", resx.BasePath)
Console.WriteLine()
resx.UseResXDataNodes = True
Dim dict As IDictionaryEnumerator = resx.GetEnumerator()
Dim assemblyNames() As AssemblyName =
{ New AssemblyName(GetType(Bitmap).Assembly.FullName) }
Do While dict.MoveNext()
Dim node As ResXDataNode = CType(dict.Value, ResXDataNode)
If node.FileRef IsNot Nothing Then
Dim image As Object = node.GetValue(assemblyNames)
Console.WriteLine("{0}: {1} from {2}", dict.Key, image.GetType().Name, node.FileRef.Filename)
Else
Console.WriteLine("{0}: {1}", node.Name, node.GetValue(CType(Nothing, ITypeResolutionService)))
End If
Loop
End Sub
Private Sub CreateXMLResourceFile()
' Define an array of ResXFileRef objects for images.
Dim typeName As String = String.Format("{0}, {1}", GetType(Bitmap).Fullname, GetType(Bitmap).Assembly.FullName)
Dim imageRefs() As ResXFileRef =
{ New ResXFileRef("images\Akita.jpg", typeName),
New ResXFileRef("images\Dalmatian.jpg", typeName),
New ResXFileRef("images\Husky.jpg", typeName),
New ResXFileRef("images\GreatPyrenees.jpg", typeName),
New ResXFileRef("images\Malamute.jpg", typeName),
New ResXFileRef("images\Newfoundland.jpg", typeName),
New ResXFileRef("images\Rottweiler.jpg", typeName)
}
Using resx As New ResXResourceWriter(".\DogBreeds.resx")
' Add each ResXFileRef object to the resource file.
For Each imageRef In imageRefs
' Form resource name from name of image.
Dim name As String = imageRef.FileName
name = name.Substring(name.IndexOf("\") + 1)
name = name.Substring(0, name.IndexOf("."))
Dim node As New ResXDataNode(name, imageRef)
resx.AddResource(node)
Next
resx.AddResource("CreatedBy", GetType(Example).Assembly.FullName)
End Using
End Sub
End Module
' The example displays the following output:
' Default Base Path: ''
' Current Base Path: 'C:\Data\'
'
' Akita: Bitmap from C:\Data\images\Akita.jpg
' Dalmatian: Bitmap from C:\Data\images\Dalmatian.jpg
' Husky: Bitmap from C:\Data\images\Husky.jpg
' GreatPyrenees: Bitmap from C:\Data\images\GreatPyrenees.jpg
' Malamute: Bitmap from C:\Data\images\Malamute.jpg
' Newfoundland: Bitmap from C:\Data\images\Newfoundland.jpg
' Rottweiler: Bitmap from C:\Data\images\Rottweiler.jpg
' CreatedBy: BasePathEx1, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
Všimněte si, že pokud chcete projekt úspěšně zkompilovat, musíte přidat odkaz na System.Drawing.dll. Příklad také vyžaduje, aby v adresáři S názvem C:\data\images\existovaly potřebné image.
Poznámky
Vlastnost BasePath slouží k překladu relativních odkazů na cestu k souboru, které jsou přiřazeny k FileName vlastnosti ResXFileRef objektů. Ve výchozím nastavení je String.Emptyjeho hodnota a relativní odkazy na cestu k souboru jsou vyřešeny v relaci s aktuálním adresářem vráceným Environment.CurrentDirectory vlastností. Tuto vlastnost byste měli nastavit před zahájením vytváření výčtu prostředků.