Procedura dettagliata: caricamento di risorse da un assembly satellite
In questa procedura dettagliata viene illustrato come caricare una stringa di risorsa da un assembly satellite con WPF Designer per Visual Studio. La localizzazione per le applicazioni WPF risulterà così facilitata.
Questa procedura dettagliata prevede l'esecuzione delle attività seguenti:
Creare il progetto
Abilitare l'assembly satellite.
Creare e accedere a una stringa di risorsa.
Al termine si otterrà un'applicazione semplice che recupera una stringa da un assembly satellite.
Nota
È possibile che le finestre di dialogo e i comandi di menu visualizzati siano diversi da quelli descritti nella Guida a seconda delle impostazioni attive o dell'edizione del programma. Per modificare le impostazioni, scegliere Importa/Esporta impostazioni dal menu Strumenti. Per ulteriori informazioni, vedere Gestione delle impostazioni.
Prerequisiti
Per completare la procedura dettagliata, è necessario disporre dei componenti seguenti:
- Visual Studio 2010.
Creazione del progetto
Il primo passaggio consiste nella creazione del progetto per l'applicazione.
Per creare il progetto
Creare un nuovo progetto Applicazione WPF in Visual Basic o Visual C# denominato ResourceTest. Per ulteriori informazioni, vedere Procedura: creare un nuovo progetto di applicazione WPF.
MainWindow.xaml viene aperto in WPF Designer.
Dalla casella degli strumenti, trascinare un controllo Button nell'area di progettazione.
Fare doppio clic sul pulsante per creare un gestore eventi Click per il controllo pulsante.
Abilitazione dell'assembly satellite
L'assembly satellite viene abilitato apportando delle piccole modifiche ai file di progetto e AssemblyInfo.
Per abilitare l'assembly satellite
Aprire AssemblyInfo.cs o AssemblyInfo.vb nell'editor del codice. Per vedere il file in Esplora soluzioni, potrebbe essere necessario fare clic su Mostra tutti i file.
Rimuovere il commento dalla seguente riga.
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
'<Assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)>
Salvare la soluzione.
In Esplora soluzioni, fare clic con il pulsante destro del mouse sul progetto ResourceTest e selezionare Scarica progetto.
Visual Studio scarica il progetto ResourceTest.
In Esplora soluzioni, fare clic con il pulsante destro del mouse sul progetto ResourceTest e selezionare Modifica ResourceTest.csproj o Modifica ResourceTest.vbproj.
Il file di progetto verrà aperto nell'editor XML.
Inserire l'XML seguente allo stesso livello degli altri elementi <PropertyGroup>.
<PropertyGroup> <UICulture>en-US</UICulture> </PropertyGroup>
Salvare e chiudere il file.
In Esplora soluzioni, fare clic con il pulsante destro del mouse sul progetto ResourceTest e selezionare Ricarica progetto.
In Esplora soluzioni modificare il nome del file RESX predefinito da Resources.resx. a Resources.en-US.resx.
Nella finestra Proprietà, cancellare il valore di Strumento personalizzato del file di risorse.
Creazione di una stringa di risorsa nell'assembly satellite
A questo punto è possibile creare una stringa nel file di risorse.
Per creare una stringa di risorsa nell'assembly satellite
In Esplora soluzioni fare doppio clic su Resources.en-US.resx.
Resources.en-US.resx viene aperto in Progettazione risorse.
Impostare il nome della stringa predefinita da String1 su helloWorldString.
Impostare il valore di helloWorldString su Hello World.
Salvare e chiudere l'editor risorse.
Accesso alla stringa di risorsa
Accedere alla stringa nell'assembly satellite tramite la classe ResourceManager.
Per accedere alla stringa di risorsa
Nell'editor di codice aprire MainWindow.xaml.cs o MainWindow.xaml.vb.
Inserire il codice seguente all'inizio di MainWindow.xaml.cs o MainWindow.xaml.vb.
using System.Reflection; using System.Resources;
Imports System.Reflection Imports System.Resources
Inserire il codice riportato di seguito nel gestore eventi button1_Click.
ResourceManager rm = new ResourceManager( "ResourceTest.Properties.Resources", Assembly.GetExecutingAssembly()); MessageBox.Show(rm.GetString("helloWorldString"));
Dim rm As New ResourceManager( _ "ResourceTest.Resources", _ Assembly.GetExecutingAssembly()) MessageBox.Show(rm.GetString("helloWorldString"))
Premere F5 per compilare ed eseguire l'applicazione.
Fare clic sul pulsante per vedere il valore della stringa caricato dalla risorsa satellite.
Aprire la cartella Debug/en-US per vedere l'assembly satellite, denominato ResourceTest.resources.dll.