Datenverwaltung zur Laufzeit (ohne Datenbank)

Augus

Grünschnabel
Hallo zusammen!

Wir bearbeiten zur Zeit an der FH Projekt.
Bei diesem Projekt gibt es eine Klasse, die verschiedene Objekte beinhaltet. Diese Objekte sind alle in einer Klasse zusammengefasst.
Und diese Klasse will ich einmal in der Anwendung anlegen und immer wieder darin neue Instanzen von den Objekten erzeugen.

Das Ganze habe ich schon mit Cache
Code:
cache = new Cach();
versucht leider konnte ich dann immer nur auf eine Liste von einem Objekte zugreifen.

Bsp.:
Klasse: Auto
Objekte: Räder, Türen, Motoren...

Was ich machen will?
Einen Cache anlegen, der die ganze Klasse Auto(einmalig) enthält und darin sind alle Objekte einmal vorhanden. Diese Objekte sind jeweils in einer Liste in der Klasse Auto und diese haben dann immer Eigenschaften.

Was mir gelungen ist?
Ich konnte den Cache bisher immer nur mit einem bestimmten Objekt füllen, aber in mehreren Instanzen. Leider konnte ich aber nicht die ganze Klasse 'Auto' ins Cache legen und später wieder auf die Inhalte zugreifen. Es folgte immer eine Ausnahme, dass die Referenz NULL ist.

Meine Frage?
Gibt es in etwa so eine Möglichkeit den Cache so aussehen zu lassen:
Code:
cache["Auto"]["Türen"].Add("roteTür")


Oder gibt es womöglich eine bessere Möglichkeit Daten zur Laufzeit zu speichern ohne es in einer Datei oder in einer Datenbank zu speichern?
 
Zuletzt bearbeitet:
Nichts für ungut, ich denke, dass du dir noch nicht ganz sicher bist, was eine Klasse und was ein Objekt ist :)

Zu deinem Problem:

Code:
public class Container
{
   public Container()
   {
        Cars = new List<Car>();
   }
   public List<Car> Cars { get; set; }
}

public class Car
{
   public Car()
   {
       Doors = new List<Door>();
   }
   public List<Door> Doors { get; set; }
}

public class Door
{
    public string Color { get; set; }
    public Size Size { get; set; }
}
(Wobei es für Farben auch eine entsprechende Enumeration Colors gibt, die verwendet werden kann)

So in die Richtung sollte der Aufbau sein, dann hast du auch immer alles initiatilisiert und kannst darauf zugreifen. Im schlimmsten Fall sind deine Listen leer und enthalten kein Element.
 
Danke für die Antwort. Ja, ich hab zu komliziert gedacht^^.
Die naheliegenste Lösung ist ja eine Instanz der Klasse anzulegen. In dem Fall in einer global.asax.cs Datei und schon hab ich ja meine Speicherlösung.
 
Zurück