- - PR -
Web ユーザーコントロール内のnamespace をApp_Code内で参照できない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-10-18 15:12
VS2005 になってWebサイト内のクラスはApp_Codeフォルダーに入れる様になりました。
App_Code内のクラスで定義したnamespaceは、Webサイト内の別フォルダーにある .aspx.cs, .ascx.cs で参照できますが、 .aspx.cs, .ascx.cs で定義したnamespaceが別フォルダーのクラスファイルから参照できません。 少しややこしい説明になりましたが、例えばユーザーコントロールのクラスをApp_Code内のプログラムから参照したいのですが、using xxxxx; で名前空間が存在しません〜 エラーになります。 どうすれば、別フォルダーのクラスファイルからこの名前空間を参照できる様になるのでしょうか? どなたかご指導願います。 | ||||
|
投稿日時: 2007-10-18 19:20
エディタのなにもないところで [CTRL]+[J] をキーインすると、ルート名前空間に定義されたものが表示されると思います。キーの組み合わせは要確認
ここから順番に目的のコントロールがある名前空間までたどってみてください 予想外の名前空間が紛れ込んでいると思います。ディレクトリ名とか、プロジェクト名とか | ||||
|
投稿日時: 2007-10-18 21:27
Jitta 様
返信ありがとうございます。 順番にたどって行って、目的のコントロールがある名前空間が出てきません。 VS2003 で出来上がっていたプロジェクトをVS2005に置き換えています。 VS2003 ではクラスファイルもWebフォームやWebユーザーコントロールも同じフォルダーに入れていました。 VS2005 にコンバートした時、クラスファイルはApp_Codeに入れられて分離されてしまいました。 WebフォームやWebユーザーコントロールで作成した名前空間が別のフォルダーにある名前空間が参照できなくなっています。 App_Code内のクラスファイルからWebユーザーコントロールで作成した名前空間を参照出来なくなりこまっています。 WebユーザーコントロールのクラスをApp_Codeに入れることも出来ず、web.configかどこかで名前空間の定義が出来ないかと思ったのですが・・・何とかならないものでしょうか? | ||||
|
投稿日時: 2007-10-19 09:46
Webサイトじゃなくて、Webアプリケーションじゃないとだめかな。
http://www.vbaspcoder.com/PermaLink,guid,ad539948-a785-4b84-899b-eaae748e1f94.aspx | ||||
|
投稿日時: 2007-10-21 09:35
一郎様 ありがとうございます。
問題はご紹介いただいたページにある〜 「ASP .NET 2.0コンパイラのアーキテクチャが前バージョンとは全く変わってApp_CodeからUserControlのクラスが参照できなくなっているからです。」 の現象です。 MicrosoftR Visual StudioR 2005 Team Suite Service Pack 1 をインストールしましたが、まだうまくいっていません。 (XPではインストールできましたが、VISTAでは失敗しました) インストールしただけではダメなのでしょうか? VS2005になって、通常のクラスファイルからUserControlのクラスが参照する。 と言う作り方が良くない・・・と言う事でしょうか? | ||||
|
投稿日時: 2007-10-22 09:28
プロジェクトの種類が違うんだと思います。
「ファイル」−「新規作成」−「Webサイト」に「ASP.NET Webサイト」というテンプレートがあると思います。 まめみさんが今扱っているのはこれです。 サービスパックを入れると「ファイル」−「新規作成」−「プロジェクト」の中に「ASP.NET Webアプリケーション」というテンプレートができると思います。 これを使ってみてください。 | ||||
|
投稿日時: 2007-10-22 17:07
一郎さん、ありがとうございます。
サービスパックを入れると、そのまま今までのエラーが消えるんじゃないんですね。 単純に考えていました・・・。 ご指摘の通り、サービスパックの入ってるのと入っていないのを比べてみると、 「ファイル」−「新規作成」−「プロジェクト」の中に「ASP.NET Webアプリケーション」というテンプレートができていました。 これで作り直さないといけないんですね。 ありがとうございます。 |
1