- - PR -
コードビハインドされたファイルから、静的メンバを呼び出せない
1|2|3
次のページへ»
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-10-20 13:05
先程、間違えてXMLにスレッドを作ってしまいましたので投稿しなおします。
お世話になります。 ASP.NETの質問です。 Global.asaxファイルにコードビハインドにより関連付けられているGlobal.asax.csの中で、 +-------------------------------------------------------+ public class Global: System.Web.HttpApplication { public static readonly string title = "タイトル"; +-------------------------------------------------------+ といったように静的メンバを宣言しています。 アプリケーション内のファイル「test.aspx」内に、 <%=Global.title%> とすると呼び出せますが、 以下のようにコードビハインドされた「test.aspx.vb」内の「Page_Load」イベント内で呼び出せません。 +--------------------------------------------------+ Imports System Imports System.Data.SqlClient Imports System.Web.UI Imports System.Web.UI.WebControls Public Class test1 Inherits Page Private Sub Page_Load(sender as Object, e as EventArgs) Dim strTitle as String = Global.title <---ここでエラー +--------------------------------------------------+ エラーメッセージは、 「BC30451: Name 'Global' is not declared.」 です。 コードビハインドされたファイルから静的メンバを呼び出すには、何かルールがあるのでしょうか? それとも、何か別の理由によるものでしょうか? よろしくお願いいたします。 |
|
投稿日時: 2005-10-20 13:25
こんにちは。
名前空間が参照できていないだけでは? |
|
投稿日時: 2005-10-20 13:43
C#とVB.NETどっちなんですか?
もしかして、2つのプロジェクトがあって、VB.NETの方はC#のWebプロジェクトのサブディレクトリをルートとして使用していて、VB.NETの方のルートにはGlobal.asaxが無かったりしますか? それなら、VB.NETがWebアプリケーションとしてIISに登録されていないか確認してみてください。 ん〜、でもこれだとtest.aspxの方では見えるというのがなぜか分からないな。 |
|
投稿日時: 2005-10-20 14:15
お返事ありがとうございます。
> 名前空間が参照できていないだけでは? > 静的メンバを参照するために、名前空間の参照が必要のでしょうか? とりあえず 「test.aspx.vb」で、 「Imports Global」 と書いてみましたが、ダメでした・・・よく方法が分かりませんので、 その方法までご教授いただけると助かります。初心者で申し訳ないです。 > もしかして、2つのプロジェクトがあって、 > VB.NETの方はC#のWebプロジェクトのサブディレクトリをルートとして使用していて、 > VB.NETの方のルートにはGlobal.asaxが無かったりしますか? > いえ、vb.netとC#混在でわかりにくかったかもしれませんが、 test.aspx.vbは都合上VBにしてあるだけで、同じアプリケーションです。 従って、test.aspxはちゃんと動きます。 説明不十分で申し訳なかったです。 |
|
投稿日時: 2005-10-20 14:48
> いえ、vb.netとC#混在でわかりにくかったかもしれませんが、
> test.aspx.vbは都合上VBにしてあるだけで、同じアプリケーションです。 同じアプリケーションって、これどうやって実現してます? VS.NETでやろうとすると、コードビハインド部分のcsファイルとvbファイルを 一緒にはコンパイルできないはずなので何かおかしなことになると思うのですが? 問題もそのあたりから発生してそうな気がする。。。 |
|
投稿日時: 2005-10-20 15:06
同じアプリケーションだとは思うんですが、同じプロジェクトってことはないですよね。(そういうこと出来るのかな・・)
で、本当に同じアプリケーションとしてIISに登録されているかどうかという所が問題です。 プロジェクトはどんな構成になってますか? |
|
投稿日時: 2005-10-20 15:15
お返事ありがとうございます。
> 同じアプリケーションって、これどうやって実現してます? > VS.NETでやろうとすると、コードビハインド部分のcsファイルとvbファイルを > 一緒にはコンパイルできないはずなので何かおかしなことになると思うのですが? > 問題もそのあたりから発生してそうな気がする。。。 > おっしゃっている事が原因のような気がしてきました。 IISで同じ仮想ディレクトリ化で、以下のようにファイルを配置しています。 global.asax global.asax.cs test.aspx test.aspx.vb > 同じアプリケーションだとは思うんですが、同じプロジェクトってことはないですよね。 > (そういうこと出来るのかな・・) > で、本当に同じアプリケーションとしてIISに登録されているかどうかという所が問題です。 > プロジェクトとは、VisualStudioのプロジェクトと解釈してよろしいでしょうか? 私の環境では、VS.NETは使っておらず、直接コードを記述しています。 ファイルの配置については、上記の通りです。 とりあえず、test.aspx.vb を test.aspx.cs にして試してみることにします。 |
|
投稿日時: 2005-10-20 15:36
自己レスです。
global.asax.cs と test.aspx.cs をC#に統一させましたが、ダメでした。 やはり参照のところでで、「BC30451: Name 'Global' is not declared.」が出てしまいます。 |
1|2|3
次のページへ»