我有一个XSLT文件导入,myxslt.xslt,包含进口,这看起来有点像这样:加载XSLT与装配在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>
我试图将这些文件导入到我的C#应用程序通过使用组件:
Assembly assembly = Assembly.GetExecutingAssembly();
using (Stream xsltStream = assembly.GetManifestResourceStream(mynamespace.myxslt.xslt))
{
using (XmlReader xsltReader = XmlReader.Create(xsltStream))
{
xslt.Load(xsltReader);
}
}
,因为我在这个答案看到:Adding (Embedded Resource) Schema To XmlReaderSettings Instead Of Filename?
流,并负载的XmlReader罚款。
但是,当我尝试加载xslt时,我的应用程序抛出无法找到文件异常。它无法加载的文件是someOtherXsltFile.xslt
。
这两个文件都是作为嵌入资源加载的,并且这两个文件都在assembly.GetManifestResourceNames
的列表中可见。
我宁愿不更改xslt文件中的任何内容,因为这些文件是随我尝试转换的消息一起提供的标准文件。
有没有办法使用程序集导入来加载我的xslt?
[This question](http://stackoverflow.com/questions/995591/how-to-resolve-xsl-includes-in-a-transformation-that-loads-xsl-from-a-string)可能是相应 – stuartd