嵌入式WebResource和FileStream

时间:2009-11-21 21:25:23

标签: asp.net

[assembly: System.Web.UI.WebResource("Project.ConfigurationFiles.Tools.xml", "text/xml")]




 string resource = "Project.ConfigurationFiles.Tools.xml";
 string pathXML =Page.ClientScript.GetWebResourceUrl(this.GetType(), resource);

 XmlSerializer mySerializer = new XmlSerializer(typeof(ToolB));
 using (FileStream myFileStream = new FileStream(pathXML, FileMode.Open))
{

我得到的错误:

  

路径中的非法字符。

我想这是因为FilleStream需要文件而不是网址。

1 个答案:

答案 0 :(得分:0)

发生此异常是因为GetWebResourceUrl函数返回HTTP地址,但FileStream需要文件路径。从您的代码片段中我假设您正在尝试读取嵌入到程序集中的XML文件并将其反序列化回对象。以下是您如何实现这一目标:

var executingAssembly = Assembly.GetExecutingAssembly();
var resource = "Project.ConfigurationFiles.Tools.xml";
using (var stream = executingAssembly.GetManifestResourceStream(resource))
{
    var serializer = new XmlSerializer(typeof(ToolB));
    var toolB = (ToolB)serializer.Deserialize(stream);
}