Entwickler-Ecke
IO, XML und Registry - Klasse zur allgemeinen Ressourcen-Verwaltung
Palladin007 - Sa 16.06.12 16:16
Titel: Klasse zur allgemeinen Ressourcen-Verwaltung
Moin
Ich weiß nicht, ob das Thema hier passt, wenn nicht, bitte einfach verschieben.
Also, ich suche eine Klasse, die genau das ermöglicht, was auch in den Ressourcen, die man in jedem Projekt mit geben kann, ermöglicht wird. Also ein möglichst einfaches Management von Ressourcen (Bilder, Musik, Videos, etc.).
Allerdings möchte ich zur Laufzeit Ressourcen hinzu fügen und entfernen können. Und genau da liegt die Grenze der Projekt-Eigenen Ressourcen-Datei.
Kennt jemand eine Klasse, die das möglichst einfach ermöglicht, dass auch eine schnelle Arbeit damit möglich ist?
Gruß
ThoMa - Mo 02.07.12 21:24
Hallo Palladin,
Du willst so eine Art Resource-Bag? Nun - wie wäre es mit einem Zip-Archiv? :-)
Die Grenze der projekteigenen Resourcedatei liegt übrigens genau dort, wo sie liegt, weil Du eine Assembly, die im Speicher liegt und auch noch die ausführende Assembly ist, nicht bearbeiten kannst.
Grüße
Thorsten
Palladin007 - Mo 02.07.12 22:03
Ich hab ja kein Problem damit, dass die Dateien in einem Ordner liegen, aber ich möchte eine Klasse haben, die die Ressourcen verwaltet.
Also z.B. wäre es auch praktisch, wenn mehrere gleichnamige Dateien möglich sind, also der eigentliche Dateiname automatisch fest gelegt wird.
In meinem aktuellen Projekt wollte ich das von einer Datenbank machen lassen, da ich sowieso eine brauche.
ThoMa - Mo 02.07.12 22:25
Hallo Palladin,
dann bau Dir doch eine entsprechende Klasse. Irgendeinen Zugriffsmechanismus um die Resource eindeutig zu identifizieren brauchst Du jedoch. Ob das nun der vollqualifizierte Name ist, eine GUID oder was auch immer, sei egal.
An Deiner Stelle würde ich mit einem Dictionary arbeiten, welches ich XmlSerialisierbar mache. Für die Resourceninhalte würde ich dann ein Interface definieren, welches mir eben erlaubt aus der entsprechenden Darstellung im Dictionary das Resourcenobjekt zurück zu liefern bzw. den umgekehrten Weg unterstützt. Hier könnte man dann auch noch die Kompression einbauen. Im einfachsten Fall greift man auch wieder auf IXmlSerializable zurück.
Wenn Du es jedoch so haben willst, wie .NET das selbst unterstüzt, dann könntest Du mit einer dynamischen Assembly arbeiten und diese über AssemblyBuilder.Save auf Platte prügeln.
Grüße
Thorsten
Palladin007 - Mo 02.07.12 22:39
So ähnlich habe ich mir das bisher für Bilder gemacht, aber eben nur für Bilder.
Als eindeutigen Zugriffsmechanismus hab ich im Dictionary einen Integer gesetzt, der Datei-Name setzt sich dann aus irgendeiner Zeichenfolge (z.B. Img_) und der Nummer zusammen.
Soweit funktioniert das, aber umständlich ist es schon, deshalb hab ich ja gefragt, ob es das vielleicht schon gibt.
Wie meinst du denn deinen letzten Satz?
ThoMa - Mo 02.07.12 23:22
Hallo Palladin,
unter .NET kannst Du zur Laufzeit Assemblies bauen. Das ganze geht über den AssemblyBuilder - das sind sogenannte dynamische Assemblies. Hier wird es auch möglich sein die Resourcen in die dynamische Assembly hereinzulinken. Du baust Dir also entsprechende dynamische Assembly mit Deinen Resourcen und legst sie dann auf dem Datenträger ab. Zugriff erfolgt dann 'known-as-usual'.
Grüße
Thorsten
Palladin007 - Di 03.07.12 17:22
Interessantes Feld, ich schau es mir mal an.
Gehört hab ich schon, aber Ahnung hab ich nicht davon :D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!