2009-10-28 19 views
6

Może to brzmieć jak nietypowe pytanie, ale jestem ciekawy, w jaki sposób mogę dodać dodatkową kolumnę do konfiguracji pliku resx (tak bym coś takiego jak "nazwa, wartość, komentarz, foo")dodanie niestandardowego pliku resx kolumny

Rozglądałem się w sieci i nie słyszałem o innych próbach czegoś takiego, ale myślę, że można to zrobić, pisząc nowego czytnika i pisarza Resx. Chciałem tylko wiedzieć, czy ktoś ma wgląd w ten problem, głównie zamierzam go użyć do przechowywania wiadomości i rejestrowania ich z priorytetem zapisanym w pliku zasobów (w tym przypadku kolumna foo).

+0

Mając na ten temat zasługę Mikaela, mimo że nie byłem w stanie stworzyć niestandardowego czytnika i pisarza, więc studio graficzne pozwala mi uzyskać dodatkową kolumnę, jestem w stanie zmodyfikować schemat tak długo, jak to robię. t Otwórz edytor studia wizualnego (co naprawdę chciałbym zrobić). Jeśli ktokolwiek ma więcej informacji na temat generowania działającego czytnika/pisarza dla pliku resx 3 lub więcej, doceniłbym to, –

+0

Edytowałem swoją odpowiedź. Wydaje mi się, że wbudowany edytor VS jest zablokowany do domyślnego formatu resx. –

Odpowiedz

5

Możesz otworzyć plik resx z edytorem XML i zmodyfikuj schemat, ale wbudowany edytor resx w Visual Studio usunie każdą kolumnę, którą ręcznie dodasz do schematu.

Ale stworzenie własnego czytnika powinno być możliwe.

[Edytuj] Powieliłem ResXResourceReader/Writer ze środowiska .Net, ale po dodaniu ich do pliku .resx Edytor zarządzanych zasobów w .Net zgłasza błąd. Moja najlepsza sugestia to dodanie nowej kolumny do schematu i użycie innego edytora, takiego jak ten pod adresem http://madskristensen.net/post/A-NET-resource-editor-application-for-resx-files.aspx. Po prostu zmodyfikuj kod, aby uwzględnić dodatkową kolumnę.

+0

Czy istnieje sposób na zastąpienie domyślnego edytora Visual Studio? Byłoby miło korzystać z edytora, jeśli to możliwe, ale mogę napisać własną małą aplikację do obsługi nowej kolumny, jeśli zajdzie taka potrzeba. Zależy mi głównie na tym, że część "Visual Studio usunie dowolną kolumnę, którą dodasz", ponieważ nie chcę po prostu opuszczać priorytetów rejestrowania ani niczego innego, co można dodać. –

+0

Byłem trochę przedwcześnie z moją odpowiedzią. Zostały one usunięte z powodu odniesienia w pliku resx do System.Resources.ResXResourceReader i System.Resources.ResXResourceWriter. Jeśli dziedziczysz je lub implementujesz IResourceReader we własnym czytniku/pisarzu i umieszczasz bibliotekę DLL w GAC, jestem pewien, że możesz rozszerzyć schemat i dodać kolejną kolumnę. –

+0

wygląda na to, że będę musiał to załatwić i przy odrobinie szczęścia powrócę za kilka dni, żeby sprawdzić twoją odpowiedź. –

1

Spróbuj za pomocą prostego systemu nazewnictwa do przechowywania pary klucz-wartość dla „nazwa”, np:

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

To pozwala przechowywać dowolną liczbę imienin keystone> par jakość za " nowe kolumny ".

Jeśli twoje wymagania są bardziej złożone, to subtelne, a następnie zajrzyj do pisania własnego czytnika/autora zasobów.

Ponadto brzmi to tak, jak masz wymagania, które bardziej pasują do tabeli bazy danych. Przyjrzyjmy się, jak najprawdopodobniej można użyć SQLite jako magazynu danych.

+1

masz rację na idei bazy danych, ja faktycznie próbuję odejść od tego, ponieważ utrudni to przeniesienie aplikacji na inne maszyny, które będą potrzebować przechowywanych danych. –

+0

SQLite można osadzać w aplikacji. Możesz łatwo przenosić go między maszynami (lub przenosić jego plik danych) bez żadnych dodatkowych czynności instalacyjnych. Jednak tracisz wszystkie fajne rzeczy związane z używaniem plików zasobów ... Trzymaj się mojej pierwszej sugestii! –

+0

Pamiętaj, że innym powodem używania plików Resx jest to, że chcemy umiędzynarodowić nasz produkt. –

Powiązane problemy