Avatar billede trenskow Nybegynder
01. juli 2006 - 15:08 Der er 5 kommentarer og
1 løsning

Gemme Arraylist i settings.settings

Hejsa

Jeg er stødt en i et lille problem i en lille app jeg er ved at lave.

Jeg vil meget gerne gemme en arraylist i settings.settings filen, men har af en eller anden grund problemer med lige præcis det.

Den gemmer ikke ArrayListen når jeg lukker app'en, og jeg ved ikke hvad der er galt.
Jeg har testet lidt, så nu gemmer jeg arraylist og en string i settings.settings. Inden jeg så lukker programmet, så har jeg lavet en knap, som kan fortælle mig, at arraylisten i settings er count=1, og skrive string'en til consol. Så lang så godt.

Så lukker jeg app'en og prøver igen.
Jeg kan stadig hente string'en i settings.settings og skrive den til consol, men når jeg så vil hente arraylist, så er der ingenting, den er ikke gemt......

Hvad gør jeg galt?
Avatar billede Syska Mester
01. juli 2006 - 15:56 #1
Uden kode, kan jeg ik' se hvad du gør galt....

// ouT
Avatar billede trenskow Nybegynder
01. juli 2006 - 20:58 #2
Her kommer så en lille test code jeg har lavet til lejligheden.
Settings.settings har følgene parametre

TestString = string
TestArray = System.Collections.ArrayList


using System;
using System.Collections.Generic;
using System.Text;

namespace Test
{
    public class TestClass
    {
        private int heltal1, heltal2;
        private string streng1, streng2;
        private double tal1, tal2;
        public TestClass()
        {
        }
        public string Streng2
        {
            get { return streng2; }
            set { streng2 = value; }
        }
        public string Streng1
        {
            get { return streng1; }
            set { streng1 = value; }
        }
        public double Tal1
        {
            get { return tal1; }
            set { tal1 = value; }
        }

        public double Tal2
        {
            get { return tal2; }
            set { tal2 = value; }
        }
        public int Heltal2
        {
            get { return heltal2; }
            set { heltal2 = value; }
        }
        public int Heltal1
        {
            get { return heltal1; }
            set { heltal1 = value; }
        }
    }
}


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace Test
{
    public partial class Form1 : Form
    {
        private ArrayList test;
        private TestClass tc;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                test = Properties.Settings.Default.TestArray;
            }
            catch
            {
            }
        }

        private void btnTest_Click(object sender, EventArgs e)
        {
            Console.WriteLine(Properties.Settings.Default.TestString);
            Console.WriteLine(Properties.Settings.Default.TestArray.Count);
        }

        private void btnInsert_Click(object sender, EventArgs e)
        {
            tc = new TestClass();
            Properties.Settings.Default.TestString = "Test virker";
            tc.Heltal1 = 1;
            tc.Heltal2 = 2;
            tc.Streng1 = "Streng1";
            tc.Streng2 = "Streng2";
            tc.Tal1 = 1.2;
            tc.Tal2 = 1.3;
            test = new ArrayList();
            test.Add(tc);
            Properties.Settings.Default.TestArray = test;
            Properties.Settings.Default.Save();
        }
    }
}


Når jeg kører det lille program første gang, så klikker jeg btnInsert, og bagefter btnTest.
I Consollen skriver den så
"Test virker
1"

Så lukker jeg programmet, starter det igen, og klikker btnTest, så får jeg en NullPointerException på denne
Console.WriteLine(Properties.Settings.Default.TestArray.Count);
Avatar billede Syska Mester
04. juli 2006 - 20:01 #3
Følgende virker på min computer....:
if(Settings1.Default.Noget == null)
    Settings1.Default.Noget = new ArrayList();

Settings1.Default.Noget.Add("test");
Settings1.Default.Noget.Add("test");
Settings1.Default.Noget.Add("test");
Settings1.Default.Noget.Add("test");

Settings1.Default.Save();

Console.WriteLine(Settings1.Default.Noget.Count.ToString());

--------
Der har jeg bare tilføjet en "App Settings" og tilføjet en ArrayList som hedder "Noget"... og der stiger antallet hele tiden, så ved ikke lige hvad der sker i dit program.....
Avatar billede Syska Mester
04. juli 2006 - 20:01 #4
Skulle ik' have postet endnu...

Kan heller ikke lige se hvor dine navne på dine App Settings kommer ind henne, de ser mærkelige ud.....
Avatar billede trenskow Nybegynder
21. august 2011 - 23:58 #5
Hej

Vil du smide et svar, så kan jeg få lukket mine gamle tråde?
Avatar billede Syska Mester
22. august 2011 - 12:23 #6
svar
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