- - PR -
自作クラスでServer.MapPathを参照したい
1
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-04-21 16:57
こんにちは、ASP.NETでWebアプリを作っています。
自作クラス(共通関数群)を作成したのですが、その中でServer.MapPathを参照できません。 共通関数のメソッドを呼ぶ方(aspxのページクラス)でMeを渡すと、 共通関数内でも参照できます。(パラメータ.MapPath) 自作クラスは何か継承させないといけないのでしょうか? よろしくお願いします。 | ||||||||
|
投稿日時: 2003-04-22 15:47
こんにちは。
Server は、System.Web.UI.Pageのプロパティなので、aspxのページクラスでは 直接 Server.MapPath と記述することができます。 (aspxのページクラスは System.Web.UI.Page から派生させているため) 一方、自作クラスのほうは、明示的に派生元クラスを記述していないと思います。 その場合には、object からの派生となるため、Serverプロパティがなく、 直接 Server.MapPath と記述することはできません。 共通関数のパラメータでMeを渡すと System.Web.UI.PageにMapPathメソッドが あるので、パラメータ.MapPath()と記述することができます。 また、共通関数のパラメータでMeを渡す以外にも、自作クラス内に、 System.Web.UI.Page型の変数を定義しておくという方法も取れるかと思います。 | ||||||||
|
投稿日時: 2003-04-22 16:08
Qooさん、書き込みありがとうございます。
もう少し質問させてください。 実際に以下のようなコードを書いてみたんですが、 うまくいきません。どこが悪いのでしょうか・・・? ========================================================== Public Class ComFunction Inherits System.Web.UI.Page Public Shared Function Method_A() As String Dim objPage As New System.Web.UI.Page() return objPage.MapPath(".") 'return Me.MapPath(".") End Function End Class ============================================================= System.Web.UI.Pageを継承し、Me.MapPathを使おうと思ったんですが、 メソッドがSharedなので、ダメみたいでした。 そこで、System.Web.UI.Pageの変数を宣言して、 objPage.MapPathを参照してみたのですが、以下のような例外が発生してしまいます。 実行時例外がスローされました : System.NullReferenceException - オブジェクト参照がオブジェクト インスタンスに設定されていません。 よろしくお願いいたします。 | ||||||||
|
投稿日時: 2003-04-22 16:47
こんにちは。
Dim objPage As New System.Web.UI.Page() とした場合、aspx と結びついていないのではないかと思います。(推測) 自作クラス内に Page 型の変数を定義しておくというところが 少し言葉足らずでした。コンストラクタを用いて、下記のように 記述することができます。
呼び出し側は、下記の記述となります。
| ||||||||
|
投稿日時: 2003-04-22 19:24
Qooさん、こんにちは。
ご返信ありがとうございます。 できればNewせずにいいように、メソッドをSharedにしたかったのですが、 どこかでMeを渡さないといけないのですね。 教えていただいた方法でいこうと思います。 ありがとうございました。 | ||||||||
|
投稿日時: 2003-04-22 20:21
こんにちは。
自分も自作クラスでMapPathメソッドを使いたいと思った ことがあったので、そのときは以下のように記述しました。
上記の方法だとMeを渡さなくて済むので、Sharedにもできると思います。 | ||||||||
|
投稿日時: 2003-04-22 20:31
124さん、教えていただいた方法でバッチリでした。
助かりました。 ありがとうございました。 | ||||||||
1
