私はWebサービスを利用しています。同じコードを使用して、RESTWebサービスを開発する必要がありました。私はそれをしました。私がそれをデバッグしていたとき、私は1つの変わったものを見つけました。RESTWebService
プロジェクトをデバッグしているときに、静的コンストラクターが呼び出されていません。
すべてのビジネスロジックは1つのDLL内にあります。WebService
とプロジェクトの両方RESTWebService
がこのDLLを使用します。以下は、DLL内に存在する静的コンストラクターです。これらのコンストラクターは、いくつかの静的な値を初期化します。
//Logger.cs
static Logger()
{
try
{
m_LogLevel = ....;
m_LogFilePath = ....;
}
catch
{
throw;
}
}
//Common.cs
static Common()
{
ERROR_CODES = ....;
DB_CONNECTION_STRING = ....;
DB_NOTIFICATION_CONNECTION_STRING = ....;
DATA_PROVIDER_INVARIANT_NAME = ....;
}
コンストラクターで初期化されたすべての値は、静的として宣言されます。
プロジェクトの場合、WebService
静的コンストラクターを介してすべての静的変数を初期化します。この静的コンストラクターへのブレークポイントを維持することにより、これを検証しました。それはすべての静的コンストラクターにヒットし、最終的には私のWebサービスのパブリックコンストラクターにヒットします。
しかし、これはの場合には起こりませんRESTWebService
。すべての環境は私のとまったく同じWebService
です。ただし、静的コンストラクターのブレークポイントにはヒットせず、RestWebService
パブリックコンストラクターに直接ヒットします。
この背後にある理由は何でしょうか?私はWCFを初めて使用します。RESTWebServiceに他に何かありますか?