2011-12-06 41 views
0

バージョン情報をasmxファイル(web.configではなく)に含めて、再コンパイルせずにバージョン番号を編集できるようにしたい。これを達成するためのきれいな方法はありますか?私はそれを行う方法を考え出すでしたが、それはかなり恐ろしいです:asmxとCodeBehindを組み合わせる

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ファイルに触れるたび

はい、それは再コンパイルのために行きます。

私は、我々は二つの方法でバージョン情報を扱うべきだと思う: - web.configweb.config

  • オーバーライドで主要

    1. の.asmxファイルに
    する必要があります

    要件に基づいて、バージョン情報をどこに設定する必要があるかを考えることができます。

  • +0

    web.configでは* me *はサイトを再コンパイルする必要はありません。私はちょうどweb.configのこの情報を全く望んでいません。とにかく、これは本当に私の質問に答えることはありません。 – Brian