2009-11-21 73 views
0
[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)) 
{ 

的錯誤,我得到:在路徑嵌入式WebResource和的FileStream

非法字符。

我想這是因爲FilleStream需要文件而不是url。發生

回答

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); 
}