ich eine xslt-Datei haben, myxslt.xslt, das enthält einen Import, die ein bisschen wie folgt aussieht:Last Xslt mit dem Import von der Montage in C#
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="someOtherXsltFile.xslt"/>
<!--Do some transformations -->
</xsl:stylesheet>
Ich versuche, diese Dateien in mein C# zu importieren Anwendung durch die Montage mit:
Assembly assembly = Assembly.GetExecutingAssembly();
using (Stream xsltStream = assembly.GetManifestResourceStream(mynamespace.myxslt.xslt))
{
using (XmlReader xsltReader = XmlReader.Create(xsltStream))
{
xslt.Load(xsltReader);
}
}
, wie ich in dieser Antwort sah: Adding (Embedded Resource) Schema To XmlReaderSettings Instead Of Filename?
The Stream und XmlReader Last in Ordnung.
Allerdings löst meine Anwendung eine Datei nicht finden Ausnahme aus, wenn ich versuche, die Xslt zu laden. Die Datei, die nicht geladen werden kann, ist someOtherXsltFile.xslt
.
Beide Dateien werden als eingebettete Ressource geladen und beide sind in der Liste von assembly.GetManifestResourceNames
sichtbar.
Ich würde lieber nichts in den xslt-Dateien ändern, da dies Standarddateien sind, die mit den Nachrichten geliefert wurden, die ich zu transformieren versuche.
Gibt es eine Möglichkeit, meine XSLT mit einem Import von der Baugruppe zu laden?
[Diese Frage] (http://stackoverflow.com/questions/995591/how-to-resolve-xsl-includes-in-a-transformation-that-loads-xsl-from-a-string) möglicherweise sein relevant – stuartd