2009-06-17 57 views
0

我已經繼承了一個預編譯的網站,該網站使用在通用處理程序(ashx)中創建的JavaScript。我需要修改js,但我沒有源代碼,只有預編譯的庫。目前,我們只是做在ashx的http請求,修改的結果,然後直接將其輸出的網站上:編輯預編譯的通用處理程序的輸出.ashx

<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> 

這似乎是這樣做的相當迂迴的方式。無論如何修改通用處理程序的輸出而不請求頁面本身?

回答

2

如果您有權訪問實際的dll,您可以嘗試拆卸預編譯的作品。 請參閱converting-il-to-c-code和類似的SO問題。

使用.NET Reflector您可能在js.ashx後面有一個可用的(C#)版本的代碼。 此來源可以(希望)略微修改爲可直接調用,或更好,以產生所需的Javascript。

相關問題