2011-12-06 100 views
0

我希望將版本信息包含在asmx文件(而不是web.config)中,這樣我就可以編輯版本號而無需重新編譯。有沒有一種乾淨的方式來實現這一點?我想出了一個辦法做到這一點,但它是相當可怕的:與CodeBehind混合使用asmx

WS.asmx:

<%@ WebService Language="C#" CodeBehind="SiteWS.asmx.cs" Class="SiteWS" %> 

WS.asmx.cs

public class SiteWS : System.Web.Services.WebService 
{ 
    public static string WSVersion = "1.0"; 
} 

新WS.asmx :

<%@ WebService Language="C#" CodeBehind="SiteWS.asmx.cs" Class="SiteWS2" %>  
public class SiteWS2 : SiteWS 
{ 
    static SiteWS2() 
    { 
     SiteWS.WSVersion = "1.0"; 
    } 
} 

新WS.asmx.cs

public class SiteWS : System.Web.Services.WebService 
{ 
    public static string WSVersion = null; 
} 
+0

你爲什麼要這麼做? – ChrisBint

+0

@ChrisBint:該數字對應於exe的版本號。如果發佈了新的exe文件,那麼只需編輯一個asmx文件並上傳一個exe文件,而不是在處理代碼時執行重新編譯就可以了。當然,也可以擱置當前的工作,並從版本控制中重新編譯上一個版本,但這更簡單。做不必要的全面鋪開是需要避免的。 – Brian

+0

對不起,澄清,我的意思是你爲什麼不把它存儲在web.config中。當web.config完全適合存儲像這樣的「配置」信息時,看起來有點像黑客攻擊。 – ChrisBint

回答

0

它對你的概念看起來很有趣。

是的,如果我們把版本信息web.config中,當我們觸摸的web.config然後去重新編譯。

我認爲,我們應該用兩種方式處理的版本信息: -

  1. 主要在覆蓋的web.configweb.config
  2. ,應該是的.asmx文件

因此,根據需求,我們可以考慮需要設置版本信息的位置。

+0

web.config不需要*我*重新編譯該網站。我根本不需要web.config中的這些信息。總之,這並不能真正回答我的問題。 – Brian