Domanda

memorizza un elenco di 1.000 istanza della mia classe personalizzata per la variabile di sessione un approccio buono? Il mio asp.net web supporto multilingue app necessità e sto memorizzando le etichette in un table.I avrà più utenti che ha la propria preferenza di lingua e il testo (contenuto etichetta) preferenza.

Sto pensando di caricare le etichette e memorizzarlo nella variabile di sessione e l'accesso che per l'uso in pages.Storing nella variabile applicazione non funziona perché ogni cliente ha il proprio testo per la labels.So sta memorizzando una buona sessione modo di fare questo? Credo che avrò quasi 1000 etichette a partire da ora e può aumentare come l'applicazione cresce.

La mia classe personalizzata ha 2 parametri fisico. LanguageCode e LanguageName

per qualche motivo i cant utilizzare i file di risorse asp.net: (

Qual è il tuo pensiero su questo?

È stato utile?

Soluzione

Si dovrebbe memorizzare un singolo set di etichette per ogni lingua, quindi memorizzare il nome della lingua in sessione e utilizzarlo per cercare il labelset corretta.

Altri suggerimenti

Alcune riflessioni a notare:

Se i gestori hanno qualcosa in particolare contro di resx, è possibile memorizzare tutte le etichette in qualsiasi altro formato (ad esempio file di testo), o in un DB.

Se avete poca numero di utenti, e il tempo di caricamento è estremamente cruciale, il tuo manager possono avere un punto. Oltre a questo, si sbagliano, e vorrei prendere in considerazione cercando di spiegare che a loro.

Prova considerando "calcolo" le etichette in fase di esecuzione (ad esempio, se alcuni di loro sono prefissi, suffissi, aggiungendo, ecc è possibile salvare solo la "deriva" e di fornire un'etichetta rilevante solo su richiesta. Che vi farà risparmiare un po 'di spazio sul server ).

Se fossi in te mi piacerebbe prima passare un po 'di tempo a cercare di capire il motivo per cui i file di risorse non funzionano ... fino a quando si sta impostando la Thread.CurrentThread.CurrentCulture (o è CurrentUICulture?) Valore al cultura specifica, e hanno i file di risorse nel posto giusto, non posso pensare di qualsiasi motivi per cui essa non avrebbe funzionato.

Non è una buona idea, ci sono due problemi con esso:

  • Si userà la memoria sul server, e ridurre il numero di utenti che possono utilizzare il sistema
  • Il tempo per ogni richiesta aumenterà

Il modo standard per farlo è usare i file RESX (risorse). Si dovrebbe cercare di sistemare le cose.

Perché non usare variabili applicazione e creare il maggior numero di variabili Application come le lingue che avete. Ogni variabile applicazione sarà un superset di tutte le etichette per quella lingua.
O forse memorizzare l'intera tabella (s) in variabile di applicazione (s), invece di memorizzare molteplici variabili di sessione che, presumo, che si intersecano tra loro.

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