| 

.NET C# Java Javascript Exception

3
Guten Morgen,

mir ist die Frage echt peinlich, aber nachdem ich jetzt schon seit Tagen (nicht am Stück) daran herumbastel und ich vermutlich schon drei mal an der Lösung vorbeigeschrammt bin, muss ich einfach hier fragen.

Ich habe eine Klassenbibliothek in der ich eine XML-Datei mit Daten z.B. für Comboboxen habe.
Diese möchte ich direkt in WPF, ohne Code Behind, ansprechen. Mein derzeitiger Versuch sieht grob so aus:

<XmlDataProvider x:Key="XMLData" Source="/Resources/Data.xml" XPath="Root/Entries" />


Die Datei Data.xml liegt logischerweise innerhalb der Klassenbibliothek im Ordner "Resources". Ich habe schon alle möglichen Kombinationen von "Embedded Resource", "Resouce" und "Content" mit und ohne kopieren versucht. Ohne Erfolg.

Auch verschiedene Versuche in der Art:
Source="pack://application:,,,/MyClassLib;component/Resources/Data.xaml"

haben leider nicht zum Erfolg geführt.

Es kommt im Debug-Fenster immer die Meldung, das die Datei nicht gefunden werden konnte. Die Data.xml mit in die aufrufende Exe aufzunehmen ist in diesem Fall keine Lösung für mich. Und im idealfall würde ich sie gerne als "Embedded Resource" verwenden, anstatt die Datei physisch auf der HDD zu haben (es sei denn, jemand fällt da ein guter Grund ein, weshalb man gerade so nicht vorgehen sollte).

Bitte um kurze Hilfestellung. Ich denke, da überschneiden sich zwei Fehler und ich habe nur ein wenig Pech mit Trial-and-Error. Sämtliche Webseiten beziehen sich nur auf Executables und nie auf ClassLibraries.
07.06.2011
Jens Duczmal 2,6k 1 3 9
Jens Duczmal 2,6k 1 3 9
1 Antwort
3
Ohne das jetzt nachgestellt und ausprobiert zu haben: Kann es sein, dass du bei der Pack-Uri einfach statt .xml .xaml geschrieben hast und es deswegen nicht funktioniert? Am einfachsten ist es wahrscheinlich, wenn du eine Pack-Uri in Verbindung mit einer in die Assembly kompilierten Resource verwendest.
07.06.2011
Sparky 109 3
2
Argh.... ja, vermutlich. Ich bin mit zwar zu 100% sicher, das ich xaml auch auf xml korrigiert habe (denn das oben war ein C&P aus dem Web, nicht aus meinem Code) aber vermutlich eben erst etwas später, nachdem ich den Buildvorgang für die Data.xml umgestellt hatte. Das meinte ich mit 2 Fehlern :)

Also es funktioniert nun, wenn ich die XML-Datei als "Ressource" einstelle. Kannst Du mir sagen, weshalb das nicht auch als "Eingebettete Ressource" funktioniert?
Jens Duczmal 07.06.2011
2
Soweit ich das verstanden habe verwendet man die Pack-Uri mit Resourcen, diese werden bei WPF als ApplicationResources in die Assembly mit einkompiliert. EmbeddedResources sollten über einen ResourceManager "angesprochen" werden (so wie Satellite-Assemblies in WinForms oder in manchen WPF Lokalisierungsprojekten angesprochen werden).

Siehe hier: http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/29b6d203-18fb-40b0-a01f-d5b787ccf3be und http://msdn.microsoft.com/en-us/library/aa970494.aspx
Sparky 07.06.2011
Vielen Dank. Dort ist noch ein weiterführender Link enthalten, der Embedded und normale Ressourcen gegenüberstellt. Schaue ich mir gleich bei einem frischen Kaffee an und bessere meine Wissenslücken auf.
Jens Duczmal 07.06.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH