Hallo,
ich möchte eine Kofig-Datei mit VS-2008 erstellen.
bei Setting habe ich berets die Datei Typ als Arraylist eingestellt.
namespace excel_sql.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute ("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public global::System.Collections.ArrayList MyLoginArray {
get {
return ((global::System.Collections.ArrayList)(this["MyLoginArray"]));
}
}
}
und im Programm Code möchte ich mehere Arrays zu o.g. Arraylist hinzufügen.
dabei bekomme ich immer die Meldung das das Objekt (MyLoginArray) nicht instzansiert ist!!
private void MyLoginDaten()
{
private static Settings setting = new Settings();
public string[] LoginArray = new string[5];
LoginArray[0] = stdschematxt.Text;
LoginArray[1] = servertxt.Text;
LoginArray[2] = nutzertxt.Text;
LoginArray[3] = passworttxt.Text;
LoginArray[4] = stdschematxt.Text;
setting.MyLoginArray.Add(LoginArray);
}
wisst ihr vielleicht was ich da falsch gemacht habe!
Hast du die ArrayList als Anwendungs oder Benutzerkonfiguration angegeben? - Desweiteren wird, wenn die Section noch nicht vorhanden ist die Meldung geworfen.
Prüf am besten vorm hinzufügen auf Null, wenn Null dann einfach neu Instanziieren. - Anschließend das "Save" nicht vergessen.
Wissen ist nicht alles. Man muss es auch anwenden können.
PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |
also ich habe einfach neue funktion in class setting gewschrieben.
internal sealed partial class Settings {
[UserScopedSetting()]
[SettingsSerializeAs(SettingsSerializeAs.Xml)]
[DefaultSettingValue("")]
public Arraylist MyArrayList
{
get { return this["MyArrayList"] as Arraylist; }
set { this["MyArrayList"] = value; }
}
}
es scheint zu funktionieren, aber so ganz sicher bin ich mir noch nicht.
sollte es nicht gehen dann melde ich mich nochmal.
danke für den Tipp.
Hallo arakhsh_j,
ArrayList gehört in die Mottenkiste und sollte wie alle untypisierten Collections aus System.Collections nicht mehr benutzt werden. Verwende stattdessen List<T> und alle anderen typisierten Collections aus System.Collections.Generic.
herbivore
Ja, aber das Problem ist wenn ich ein Array der Liste einfüge dann steht da nicht ein gekapseltes Array sonder eine Liste mit ganze Arrayelemente.
d.h wenn ich wie folgt vor gehe:
string[] meinArray = new string[3];
meinArray[0] = "1. Element";
meinArray[1] = "2. Element";
meinArray[2] = "3. Element";
mylist.Addrange(meinArray);
dann habe ich als ergebniss eine Liste mit 3 Elemente und nciht eine liste mit einem Array.
mein Ziel ist aber mehrere Arrays in sich gekapselt in eine Liste haben.
gibts ne möglichekit so etwas auch mit Liste<> zu realisieren????
araskhsh
Wenn ich dich richtig verstanden habe möchtest du eine Liste von Listen bzw. Arrays.
List<string[]> myList = new List<string[]>();
string[] array = new string[3];
//...
myList.Add(array);
Ich hoffe der Syntax stimmt, ich tippen hier nur auf meinem Handy.
using System;class H{static string z(char[]c){string r="";for(int x=0;x<(677%666);x++)r+=c[
x];return r;}static void Main(){int[]c={798,218,229,592,232,274,813,585,229,842,275};char[]
b=new char[11];for(int p=0;p<((59%12));p++)b[p]=(char)(c[p]%121);Console.WriteLine(z(b));}}
ja genau rihctig aber wenn ich es mit
myList.Add(myArray);
schriebe dann spuckt er einen Feheler, dass er nicht string in stering[] konvertiernen kann.
und wenn ich ,
myList.Addrange(myArray);
neheme, dann kopiert er nicht ein Array zu der Liste sondern die ganze Array-Elemnte einzeln??????
und geunau das ist mein Problem, da ich eine Liste mit mehreren, in sich gekapselten Arrays, haben möchte!
Also leute es lag an der Deklaration es war mir garnicht bekannt, dass man auch ein Liste wie folgt deklarieren kann:
List<string[]> myList = new List<string[]>;
also statt nur string auch einen strin[]-Array.
vielen Dank für die ganzen Tipps und Antworten.
Schau dir in der Doku mal die generischen Collections an. Diese nehmen als Werttyp beliebige Objekte auf, also auch Arrays und wiederum Listen.
z.B.
List<List<string>> listList = new List<List<string>>();
List<string> myList = new List<string>;
myList.Add( ... );
//...
listList.Add(list);
Damit kann man, wenn man will, auch sehr verschachtelte (Baum-)strukturen aufbauen.
MSD-Link zu List<T> speziell: List<T>-Klasse
und zum passendem Namespace, dort gibt es ein paar "spannende" generische Klassen:
System.Collections.Generic-Namespace
using System;class H{static string z(char[]c){string r="";for(int x=0;x<(677%666);x++)r+=c[
x];return r;}static void Main(){int[]c={798,218,229,592,232,274,813,585,229,842,275};char[]
b=new char[11];for(int p=0;p<((59%12));p++)b[p]=(char)(c[p]%121);Console.WriteLine(z(b));}}