Domanda

Sto lavorando alla localizzazione per un'applicazione asp.net composta da diversi progetti.

Per questo, ci sono alcune stringhe che vengono utilizzate in molti di questi progetti.Naturalmente preferirei avere solo una copia del file di risorse in ciascun progetto.

Poiché i file di risorse non hanno uno spazio dei nomi (almeno per quanto ne so), non è possibile accedervi come le classi normali.

Esiste un modo per fare riferimento ai file RESX in un altro progetto, all'interno della stessa soluzione?

È stato utile?

Soluzione

Puoi semplicemente creare un progetto di libreria di classi, aggiungere lì un file di risorse e quindi fare riferimento a quell'assembly per le risorse comuni.

Altri suggerimenti

Ho già utilizzato questa soluzione per condividere un file info.cs di assembly tra tutti i progetti in una soluzione che presumo che lo stesso funzionerebbe per un file di risorse.

Creare un file collegato a ogni singola libreria di progetto/classe.Ci sarà una sola copia e ogni progetto avrà un riferimento al codice tramite un file collegato in fase di compilazione.È una soluzione molto elegante per risolvere risorse condivise non pubbliche senza duplicare il codice.

<Compile Include="path to shared file usually relative">
  <Link>filename for Visual Studio To Dispaly.resx</Link>
</Compile>

aggiungi quel codice al gruppo di elementi complili di un file csproj, quindi sostituisci i percorsi con i percorsi effettivi dei file resx e potresti essere in grado di aprirli.

Dopo averlo fatto per un file di progetto, dovresti essere in grado di utilizzare il copia e incolla il file collegato in altri progetti senza dover hackerare csproj.

Alcuni consigli utili su come gestire una situazione come questa sono disponibili qui:

http://www.codeproject.com/KB/dotnet/Localization.aspx

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top