- - PR -
Global.asaxとプログラムソースの分離
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-08-22 18:47
こんにちはモンモンと申します。
VisualStudio2003.netを利用して、ASP.NETの開発を試しています。 プロジェクト作成の際に作られるGlobal.asaxに関して質問があります。 ASP.NETのプロジェクトを新規作成すると、VisualStudioのプロジェクトには Global.asaxというファイルが作成され、 同時にWindowsのプロジェクトディレクトリでは Global.asax.cs(C#の場合)というファイルが作成されます。 Q1.このソースを削除して、既存のアセンブリに含まれるソースを指定することは できないでしょうか? Q2.Global.csというファイルを作成し、階層化したディレクトリに配置することはでkないでしょうか? 実際にアセンブリXYZ.Frameworkに名前空間XYZ.Framework.Service、 クラス名GlobalのファイルGlobal.csを含めて、 次のような指定方法を試みてみましたが、エラーが発生してしまいます。 ----------------------------------------------------------------------- <%@ Application Inherits="XYZ.Framework.Service.Global" %> <%@ Assembly Name="XYZ.Framework" %> ----------------------------------------------------------------------- またGlobal.asax.csファイルを削除してしまうと、 VisualStudioでGlobal.asaxファイルを開く際にエラーが表示されてしまいます。 MSDNなどを調べてみたのですが、コレという答えが見つかりません。 諸先輩方のお知恵をお借りしたいと思います。 よろしくお願いいたします。 | ||||
|
投稿日時: 2005-08-22 19:28
Global.csでSystem.Web.HttpApplicationの派生クラスを作って、Global.asax.csでそのクラスを継承するとか。
| ||||
|
投稿日時: 2005-08-22 19:46
todoさん、早速のご回答ありがとうございます。
やはりGlobal.asax.cs自体を無くしてしまうことは 難しいのでしょうか。。。 別プロジェクトでクラス自体を定義して、 アセンブリに内包してしまい、 共通DLLとして配布できたりすると便利だと思っていたのですが。 | ||||
|
投稿日時: 2005-08-23 11:39
できましたが…まあtodoさんの仰るようなやり方の方が無難であるとは思うのですが… 一応手順: 1.Global.asaxをテキストエディタなどで直接開き、CodeBehindの指定を削除 2.Global.asaxのInherits指定を対象のクラス名に変更(アセンブリ名の指定はなくても大丈夫のようですが…つける方がいいかな) 3.Global.asax.cs、Global.asax.resxを削除 こんな感じです。 ※あ、dllとかの参照設定とかは必要に応じて入れてください。 | ||||
|
投稿日時: 2005-08-23 16:20
なちゃさん、ご回答ありがとうございました。
おっしゃるとおりに設定をしてみたところ、 望み通りの結果が得られました。ありがとうございます。 ただ、ビルド時にasax.csファイルが無い旨のエラーが発生しましたので、 csprojファイルからasax.csファイルに関する記述を削除しました。 実はASP.NETの開発をはじめて間もないのですが、 みなさんGlobalに限らずasmxファイルとasmx.csファイルなどの実装は どのようにされてるのでしょうか? 簡単に作れるよーと書いてあるばかりで、 スマートな実装、管理方法が見当たりません。 実例など参考になるものはないでしょうか。。。 |
1