Domanda

Ho la seguente installazione non standard (VS2008, .NET 3.5 SP1):

Esiste un progetto web principale chiamato MainSite e ci sono diversi "plugin" progetti web con nomi diversi.

Durante la creazione di questi plug-in ho un passaggio personalizzato che chiama aspnet_compiler.exe e aspnet_merge.exe . Ciò si traduce in due file .DLL - plugin_name .dll e plugin_name _deploy.dll. Il primo contiene le classi codebehind, il secondo contiene il codice generato dai file .ascx.

Questi plugin .DLL vengono quindi copiati nella cartella / MainSite / bin / Plugins / . In fase di runtime (avvio dell'applicazione) l'applicazione MainSite cerca in questa cartella e carica dinamicamente tutti i file .DLL.

Tutti i miei moduli sono nei plugin, nei file .ascx. L'applicazione principale è solo uno scheletro che carica questi controlli utente .ascx secondo necessità.

E ora arriva la necessità di localizzazione. Idealmente, vorrei avere quanto segue:

  • Quando si creano le risorse in Visual Studio, dovrebbe esserci un file di risorse separato per ogni modulo (file .ascx) in modo che sia più facile per le persone localizzare i moduli in parallelo.
  • Il bel metodo meta: resourcekey nei file .ascx è molto comodo per localizzare i controlli;
  • Il meccanismo di fallback automatico di lingua / cultura delle risorse in .NET dovrebbe essere utilizzabile;
  • Il risultato della compilazione dovrebbe essere tale che i file di tutti i plugin possano essere copiati nella cartella / MainSite / bin / Plugins / . Se esiste un file .DLL per ogni lingua / cultura e devono essere inseriti in alcune sottocartelle specifiche, va bene purché i .DLL di plug-in diversi non abbiano nomi in conflitto.

Qualche idea su come raggiungere questo obiettivo?

È stato utile?

Soluzione

Apparentemente è possibile implementare provider di risorse personalizzati in .NET. Qui è un articolo che contiene collegamenti a vari altri articoli che spiegano il tutto il processo. In effetti, prendi il valore da meta: resourcekey e ottieni il valore da dove vuoi. L'articolo sopra, ad esempio, memorizza tutte le informazioni sulla localizzazione in un DB.

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