我有一个silverlight程序集,它有几个xml文件。所有这些文件都作为资源嵌入。我也不知道文件名。我需要加载所有文件并在内存字典中构造数据。 如果我知道文件名,我知道如何加载xml文件。如下图所示
this.filePath = string.Format(@"/{0};component/internal/{1}", assemblyName, "TaxRules.xml");
StreamResourceInfo streamResourceInfo = Application.GetResourceStream(new Uri(filePath, UriKind.Relative));
Stream stream = streamResourceInfo.Stream;
//check for performance
XmlReader reader = XmlReader.Create(stream);
我不知道如何在不知道文件名的情况下加载所有xml文件。 任何有关这方面的帮助都是高度适用的
答案 0 :(得分:0)
如果XML文件上的构建操作是嵌入式资源,并且您在程序集中,则可以从程序集中获取它
e.g。
Assembly asm = Assembly.GetExecutingAssembly();
var names = (from n in asm.GetManifestResourceNames()
where n.EndsWith(".xml")
select n
).ToList();
然后当您需要使用GetManifestResourceStream
e.g。
Dictionary<string, System.IO.Stream> resources = new Dictionary<string,System.IO.Stream>();
foreach (string name in names)
{
resources.Add(name, asm.GetManifestResourceStream(name));
}
注意:使用VS 2010 SilverLight Toolkit 4进行测试