编辑预编译的通用处理程序.ashx的输出

时间:2009-06-17 17:37:56

标签: c# asp.net

我继承了一个使用在通用处理程序(ashx)中创建的javascript的预编译网站。我需要修改js,但我没有源代码,只有预编译的库。目前,我们只是在ashx上执行http请求,修改结果,然后直接在网站上输出:

<script runat="server">
    protected string getJs()
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(Request.Url, "/js.ashx"));
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        StreamReader sr = new StreamReader(response.GetResponseStream());
        return = sr.ReadToEnd().Replace("old stuff", "new stuff");
    }
</script>

<script type="text/javascript">
    <%= getJs() %>
</script>

这似乎是一种非常圆润的方式。无论如何修改通用处理程序的输出而不请求页面本身?

1 个答案:

答案 0 :(得分:2)

如果您可以访问实际的dll,则可以尝试拆分预编译的部分。 请参阅converting-il-to-c-code和类似的SO问题。

使用.NET Reflector,您可能拥有js.ashx背后代码的可行(C#)版本。 这个源可以(希望)稍微修改为可以直接调用,或者更好,以生成所需的Javascript。