- PR -

Global.asaxとプログラムソースの分離

1
投稿者投稿内容
モンモン
会議室デビュー日: 2005/04/21
投稿数: 18
投稿日時: 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などを調べてみたのですが、コレという答えが見つかりません。
諸先輩方のお知恵をお借りしたいと思います。

よろしくお願いいたします。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2005-08-22 19:28
Global.csでSystem.Web.HttpApplicationの派生クラスを作って、Global.asax.csでそのクラスを継承するとか。

コード:

-- WebApplication1/Global.asax.cs --

namespace WebApplication1
{
	public class Global : ClassLibrary1.Global {
	}
}


-- ClassLibrary1/Global.cs --

namespace ClassLibrary1

	public class Global : System.Web.HttpApplication {
		//実装
	}
}


モンモン
会議室デビュー日: 2005/04/21
投稿数: 18
投稿日時: 2005-08-22 19:46
todoさん、早速のご回答ありがとうございます。

やはりGlobal.asax.cs自体を無くしてしまうことは
難しいのでしょうか。。。

別プロジェクトでクラス自体を定義して、
アセンブリに内包してしまい、
共通DLLとして配布できたりすると便利だと思っていたのですが。
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2005-08-23 11:39
引用:

モンモンさんの書き込み (2005-08-22 19:46) より:
やはりGlobal.asax.cs自体を無くしてしまうことは
難しいのでしょうか。。。


できましたが…まあtodoさんの仰るようなやり方の方が無難であるとは思うのですが…

一応手順:
1.Global.asaxをテキストエディタなどで直接開き、CodeBehindの指定を削除
2.Global.asaxのInherits指定を対象のクラス名に変更(アセンブリ名の指定はなくても大丈夫のようですが…つける方がいいかな)
3.Global.asax.cs、Global.asax.resxを削除
こんな感じです。
※あ、dllとかの参照設定とかは必要に応じて入れてください。
モンモン
会議室デビュー日: 2005/04/21
投稿数: 18
投稿日時: 2005-08-23 16:20
なちゃさん、ご回答ありがとうございました。

おっしゃるとおりに設定をしてみたところ、
望み通りの結果が得られました。ありがとうございます。
ただ、ビルド時にasax.csファイルが無い旨のエラーが発生しましたので、
csprojファイルからasax.csファイルに関する記述を削除しました。

実はASP.NETの開発をはじめて間もないのですが、
みなさんGlobalに限らずasmxファイルとasmx.csファイルなどの実装は
どのようにされてるのでしょうか?

簡単に作れるよーと書いてあるばかりで、
スマートな実装、管理方法が見当たりません。

実例など参考になるものはないでしょうか。。。
1

スキルアップ/キャリアアップ(JOB@IT)