2009-10-28 9 views
6

Dies mag wie eine ungewöhnliche Frage klingen, aber ich bin neugierig, wie ich eine zusätzliche Spalte zu den Resx-Datei einrichten kann (so würde ich etwas wie "Name, Wert, Kommentar, foo")Hinzufügen von benutzerdefinierten Spalte Resx-Datei

Ich habe mich online umgeschaut und habe noch nie von jemandem gehört, der so etwas versucht, aber ich denke, dass es möglich sein könnte, dies zu tun, indem man einen neuen resx reader und writer schreibt. Ich wollte nur wissen, ob irgendjemand einen Einblick in dieses Problem hatte, hauptsächlich beabsichtige ich dies zum Speichern von Nachrichten und Protokollieren mit einer in der Ressourcendatei gespeicherten Priorität zu verwenden (Spalte foo in diesem Fall)

+0

Wenn ich Mikael einen Kredit gebe, obwohl ich nicht in der Lage war, einen eigenen Leser und Schreiber zu machen, so erlaubt mir das visuelle Studio, meine zusätzliche Spalte zu haben, bin ich in der Lage, das Schema zu modifizieren. Öffnen Sie den visuellen Studio-Editor (was ich wirklich gerne tun würde.) Wenn jemand mehr Informationen darüber hat, wie man einen lesenden/schreibenden Leser für eine 3 oder mehr Spalten ResX-Datei generiert, würde ich es schätzen –

+0

Ich habe meine Antwort bearbeitet. Mir scheint, dass der eingebaute VS-Editor auf das Standard-Resx-Format eingestellt ist. –

Antwort

5

Sie können die resx Datei öffnen Mit dem XML-Editor können Sie das Schema ändern, aber der integrierte ResX-Editor in Visual Studio entfernt alle Spalten, die Sie manuell zum Schema hinzufügen.

Aber durch die Schaffung eines eigenen Lesers sollte es möglich sein.

[Bearbeiten] Ich habe den ResXResourceReader/Writer aus dem .NET-Framework dupliziert, aber wenn ich diese zur RESX-Datei hinzufüge, gibt der Verwaltete Ressourcen-Editor in .Net einen Fehler aus. Mein bester Vorschlag ist, dem Schema eine neue Spalte hinzuzufügen und einen anderen Editor wie den unter http://madskristensen.net/post/A-NET-resource-editor-application-for-resx-files.aspx zu verwenden. Ändern Sie den Code, um die zusätzliche Spalte zu berücksichtigen.

+0

Gibt es eine Möglichkeit, den Standard-Visual Studio-Editor zu überschreiben? Es wäre schön, wenn möglich den Editor zu verwenden, aber ich kann meine eigene kleine Anwendung schreiben, um die neue Spalte zu behandeln. Ich bin hauptsächlich besorgt über den Teil "Visual Studio entfernt jede Spalte, die Sie hinzufügen", da ich nicht möchte, dass es nur die Protokollierungsprioritäten oder irgendetwas anderes, das hinzugefügt werden kann, fallen lässt. –

+0

Ich war etwas voreilig mit meiner Antwort. Sie werden aufgrund der Referenz in der resx-Datei zu System.Resources.ResXResourceReader und System.Resources.ResXResourceWriter entfernt. Wenn Sie IResourceReader in Ihrem eigenen Reader/Writer erben oder implementieren und die DLL in den GAC stellen, können Sie das Schema sicherlich erweitern und eine weitere Spalte hinzufügen. –

+0

sieht so aus, als ob ich hier reinkommen muss, und mit etwas Glück werde ich in ein paar Tagen wiederkommen, um deine Antwort zu überprüfen. –

1

Versuchen Sie, ein einfaches Namenssystem unter Verwendung der Schlüssel-Wert-Paare speichern für „Name“, zB:

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

Dies würde Sie eine beliebige Anzahl von Namen-Tasten- lassen speichern> Wertepaare für Ihre " neue Spalten ".

Wenn Ihre Anforderungen komplexer & sind, dann schauen Sie in Ihren eigenen Ressourcen-Reader/Writer schreiben.

Das klingt auch, als ob Sie eine Anforderung haben, die einer Datenbanktabelle besser entspricht. Betrachten Sie SQLite als einen Datenspeicher, möglicherweise.

+1

Sie sind direkt auf der Datenbank Idee, ich Ich versuche tatsächlich, mich davon zu entfernen, da es die Portierung der Anwendung auf andere Rechner erschwert, die die gespeicherten Daten benötigen. –

+0

SQLite kann in Ihre Anwendung eingebettet werden. Sie können es problemlos zwischen den Computern verschieben (oder seine Datendatei verschieben), ohne dass zusätzliche Installationsschritte erforderlich sind. Wie auch immer, du verlierst all die schönen Sachen mit Ressourcendateien ... Bleib bei meinem ersten Vorschlag! –

+0

Bedenken Sie, dass der Grund für die Verwendung von Resx-Dateien auch darin besteht, dass wir unser Produkt internationalisieren möchten. –

Verwandte Themen