- - PR -
DLL配信
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-09-02 13:07
読んで分かりました。 まず、原因は「アプリケーションドメインがリスタートされないこと」ではありません。アプリケーションドメインは、(きっと)リスタートされているはずです。 定数というのは、Constということですよね。 .NET Frameworkでは、定数の参照はコンパイル時に解決され、コードレベルで即値に置き換えられます。つまり、参照している先(定数を定義している側)のDLLで定義を変更しても、既にその定数を使用しているDLLには反映されません。 ※反映させるには、定数を使用している側のDLLも再コンパイルする必要があります。 | ||||
|
投稿日時: 2004-09-02 14:43
todoさん、なちゃさん、ご返答ありがとうございます。
>todoさん 私もキャッシュされているに違いない!と思っていました。 サーバ上の全ての定数DLLファイルを削除したのにもかかわらず動いてしまうもんだから、それしかない、と・・・ >なちゃさん そうなんですかー! 大変よく理解できました! ありがとうございす! でもそうすると、定数クラスはコンパイルさえ終わってしまえば、DLLは配置する必要がない、ということになりますね。 | ||||
|
投稿日時: 2004-09-02 17:44
サーバ上の全ての定数DLLを削除しても動いてしまうということから、まさにそういうことでしょうね。 # 私は試したことはないですが、多分動いてしまいそうです。 後で定義を変えてしまう可能性のある定数などでは、Constの代わりに、static readonly(Shared ReadOnly)なフィールドを使う方が良いと思います。 こちらは単に最初に一度だけ初期化できるというだけで通常のフィールドですから、定義側のDLLを更新するだけできちんと反映されます。 Constの方は、まず変わることのない本当の定数として使う場合に限定した方が無難だと思います。 |