【问题标题】:Reading an embedded file from an ASP.NET Custom Server Control an rendering it从 ASP.NET 自定义服务器控件读取嵌入文件并进行渲染
【发布时间】:2010-03-31 17:02:40
【问题描述】:

我的自定义服务器控制项目中目前有一个文件“abc.htm”,它的 Build Action 设置为 Embedded Resource

现在在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:路径中有非法字符。

【问题讨论】:

    标签: asp.net custom-server-controls


    【解决方案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();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-11
      • 1970-01-01
      • 1970-01-01
      • 2012-05-09
      • 2011-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多