Avatar billede kennedk Nybegynder
29. november 2007 - 17:26 Der er 11 kommentarer og
1 løsning

Tilføje i .resx fil med ResXResourceWriter

Hej eksperter
Jeg har fundet frem til på msdn , at man skulle kunne bruge System.Resources.ResXResourceWriter klassen til at tilføje felter i min .resx fil, men når jeg kører koden så kommer denne fejl:

CS0234: Typen eller navneområdenavnet 'ResXResourceWriter' findes ikke i navneområdet 'System.Resources' (mangler der en reference til en assembly?)

Hvordan løses det?

Min kode:

System.Resources.ResXResourceWriter rsxw = new System.Resources.ResXResourceWriter(Server.MapPath("~/App_GlobalResources/Resource.resx"));
rsxw.AddResource("string", "hEJ");
rsxw.Close();
Avatar billede nielle Nybegynder
29. november 2007 - 17:31 #1
DSå vidt jeg ved ligger den i System.Windows.Forms.
Avatar billede kennedk Nybegynder
29. november 2007 - 17:36 #2
Der kommer også denne fejl: Typen eller navneområdenavnet 'ResXResourceWriter' findes ikke i navneområdet 'System.Windows.Forms'
Avatar billede kennedk Nybegynder
29. november 2007 - 17:41 #3
Her på siden siger de godt nok det samme.
http://forums.asp.net/p/1007865/1340238.aspx
Men hvordan kan det så løses?
Avatar billede nielle Nybegynder
29. november 2007 - 17:54 #4
I Solution Exploren, Højreklik på dit projekt.
I den resulterende Context menu vælger du Add Reference.
Under .Net tabben finder di System.Windows.Forms.dll'en og adder den.
Avatar billede kennedk Nybegynder
29. november 2007 - 17:59 #5
Hvad skulle der så ske ? skulle der ikke komme en dll fil i Bin mappen?
Der sker nemlig intet.
Avatar billede nielle Nybegynder
29. november 2007 - 18:03 #6
Kan den ikke kompile?
Avatar billede kennedk Nybegynder
29. november 2007 - 18:06 #7
Nej. men så fandt jeg så ud af at den ligger under System.Resources nu da jeg har tilføjer den dll.

og det virker, bortset fra at den sletter de felter der var i forvejen!
Avatar billede kennedk Nybegynder
29. november 2007 - 18:29 #8
nu har jeg lavet mig en funktion der skulle kunne tilføje et ekstra felt:

    public void WriteEkstraFieldToResx(string filePath, string name, string value)
    {
        System.Resources.ResXResourceWriter rsxw = new System.Resources.ResXResourceWriter(filePath);
        System.Resources.ResXResourceReader rsxr = new System.Resources.ResXResourceReader(filePath);
        foreach (DictionaryEntry d in rsxr)
        {
            rsxw.AddResource(d.Key.ToString(), d.Value.ToString());
        }
        rsxr.Close();
        rsxw.AddResource(name, value);
        rsxw.Close();
    }

Men hvis der er nogen der finder en bedre løsning hvor man ikke skal tilføje det hele igen, så post den endelig.

Nielle mange tak :)
Avatar billede neoman Novice
29. november 2007 - 18:31 #9
Hehe - jeg vidste sku godt du kunne klare mosten selv !:)
Avatar billede kennedk Nybegynder
29. november 2007 - 18:48 #10
ja det lykkedes sgu langt om længe!
Avatar billede nielle Nybegynder
29. november 2007 - 20:47 #11
Jeg synes at du skulle tage pointene selv på denne her. Så stort var mit bidrag vist ikke. :^)
Avatar billede kennedk Nybegynder
29. november 2007 - 21:13 #12
Jeg takker mange gange :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester