2009-10-28 16 views
6

Questa potrebbe sembrare una domanda insolita, ma sono curioso di sapere come aggiungere una colonna aggiuntiva all'impostazione del file resx (quindi avrei qualcosa come "nome, valore, commento, foo")aggiunta di un file resx di colonna personalizzato

Mi sono guardato in giro online e non ho mai sentito nessuno provasse qualcosa del genere, ma penso che sarebbe possibile farlo scrivendo un nuovo lettore e uno scrittore resx. Volevo solo sapere se qualcuno ha avuto qualche idea su questo problema, principalmente intendo utilizzarlo per archiviare messaggi e registrarli con una priorità memorizzata nel file di risorse (colonna in questo caso)

+0

Dare credito a Mikael su questo, anche se non sono stato in grado di creare un lettore e uno scrittore personalizzato, così lo studio visivo mi consente di avere la mia colonna in più, sono in grado di modificare lo schema finché non lo faccio t apro l'editor di Visual Studio (che mi piacerebbe davvero fare). Se qualcuno ha più informazioni su come generare un lettore/scrittore funzionante per un file resx di 3 o più colonne lo apprezzerei –

+0

Ho modificato la mia risposta. Mi sembra che l'editor VS incorporato sia bloccato sul formato resx predefinito. –

risposta

5

È possibile aprire il file resx con l'editor XML e modificare lo schema, ma l'editor resx integrato in Visual Studio rimuoverà qualsiasi colonna aggiunta manualmente allo schema.

Ma creando il proprio lettore dovrebbe essere possibile.

[Modifica] Ho duplicato ResXResourceReader/Writer dal framework .Net, ma quando li aggiungo al file .resx, l'editor di risorse gestito in .Net genera un errore. Il mio miglior suggerimento è quello di aggiungere una nuova colonna allo schema e utilizzare un altro editor come quello a http://madskristensen.net/post/A-NET-resource-editor-application-for-resx-files.aspx. Basta modificare il codice per tenere conto della colonna in più.

+0

esiste un modo per sovrascrivere l'editor di Visual Studio predefinito? Sarebbe bello usare l'editor, se possibile, ma posso scrivere la mia piccola applicazione per gestire la nuova colonna, se necessario. Sono principalmente interessato dal "Visual Studio rimuoverà qualsiasi colonna che si aggiunge" parte, dal momento che io non voglio che solo eliminare le priorità di registrazione o qualsiasi altra cosa che possa essere aggiunta. –

+0

Ero un po 'prematuro con la mia risposta. Vengono rimossi a causa del riferimento nel file resx su System.Resources.ResXResourceReader e System.Resources.ResXResourceWriter. Se si ereditano questi o si implementa IResourceReader nel proprio lettore/scrittore e si inserisce la DLL nella GAC, sono sicuro che è possibile estendere lo schema e aggiungere un'altra colonna. –

+0

sembra che dovrò arrivare su questo, e con un po 'di fortuna torneremo tra un paio di giorni per verificare la tua risposta. –

1

Provare a usare un semplice sistema di denominazione per memorizzare le coppie chiave-valore per il vostro "nome", per esempio:

name->"value" 
name-comment->"comment value" 
name-foo->"foo value" 

Questo sarebbe permetterà di memorizzare un numero qualsiasi di nome-chiave-> coppie di valori per il vostro " nuove colonne ".

Se le vostre esigenze sono più complesse & sottile, quindi esaminare scrivere il proprio lettore di risorse/scrittore.

Inoltre, sembra che tu abbia un requisito che corrisponde più strettamente a una tabella di database. Guardare utilizzando SQLite come archivio dati, possibilmente.

+1

hai ragione sull'idea del database, io sto in realtà cercando di allontanarmi da ciò poiché renderà più difficile il porting dell'applicazione ad altre macchine che avranno bisogno dei dati memorizzati. –

+0

SQLite è incorporabile nella tua applicazione. Si può facilmente spostarlo tra macchine (o spostare il suo file di dati) senza alcun tipo di passaggi di installazione aggiuntivi. Tuttavia, perdi tutto il piacere di usare i file di risorse ... Attacca con il mio primo suggerimento! –

+0

tenere a mente che l'altro motivo per usare i file resx è perché vogliamo internazionalizzare il nostro prodotto. –

Problemi correlati