2010-03-31 39 views
1

我目前在我的自定義服務器控制項目中有一個文件「abc.htm」,它的Build Action設置爲Embedded Resource從ASP.NET自定義服務器讀取嵌入文件控制渲染它

現在在RenderContents(HtmlTextWriter output)方法中,我需要讀取該文件並將其呈現在網站上。

我嘗試以下,但它沒有效果:

protected override void RenderContents(HtmlTextWriter output) 
{ 
    var providersURL = Page.ClientScript.GetWebResourceUrl(typeof (OpenIDSel), "OpenIDSelector.Providers.htm"); 
    var fi = new FileInfo(providersURL); // <- exception here 

    //the remaining code is to possibly render the file 
} 

這是的providersURL如何是一個例子:路徑中具有非法字符:

/WebResource.axd?d=kyU2OiYu6lwshLH4pRUCUmG-pzI4xDC1ii9u032IPWwUzMsFzFHzL3veInwslz8Y0&t=634056587753507131 

FileInfo拋出System.ArgumentException

+0

URL編碼的providersURL? – 2010-03-31 17:08:13

回答

1

你可以這樣做:

protected override void RenderContents(HtmlTextWriter output) 
{ 

var source = ReadEmbeddedResource("AssemblyName", "OpenIDSelector.Providers.htm");  

//the remaining code is to possibly render the file 

} 


private string ReadEmbeddedResource(string assemblyName, string resouceName) 
{ 
    var assembly = Assembly.Load(assemblyName); 
    using (var stream = assembly.GetManifestResourceStream(resouceName)) 
    using(var reader = new StreamReader(stream)) 
    { 
     return reader.ReadToEnd(); 
    } 
} 
相關問題