質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

6878閲覧

Visual Studio にてルート名前空間が反映されない?

arumikann

総合スコア5

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2021/05/17 01:57

編集2021/05/17 04:42

~~~~追加~~~~
〇情報
・追加したクラス「Class1.vb」
・修正したいクラス「WebForm1.aspx.vb」
⇒WebForms

・Class1.vbに存在する各機能をWebForm1.aspx.vbで利用したい。
そのため、Namespace「AAA.BBB」を「Class1.vb」で指定。

〇機能詳細
・追加したクラス「Class1.vb」はデータ受け渡し用にプロパティを保持(DTO?)
・他にもDBへアクセスするためのクラス(DAO)も追加し同様に「WebForm1.aspx.vb」で利用したい。
・「WebForm1.aspx.vb」は会員情報一覧の様な機能を想定

〇環境
Visual Studio 2015
.NET Framework 4.6.1

~~~~以上~~~~

〇プロジェクト
Webアプリケーション

〇ルート名前空間
「XXX」を指定

〇状況
既存のプロジェクト「XXX」に新しくクラスを追加し
名前空間を以下の様に追加しました

VB

1Namespace AAA.BBB 2 Public Class Class1 3 Public Property name As String 4 End Class 5End Namespace

ルート名前空間に「XXX」を指定している為
以下の様に別クラスから利用しようとしています。

VB

1Imports XXX.AAA.BBB 234

しかし、Import文にて「指定された名前空間、または型が、パブリックメンバーを含んでいないか・・・」と言う警告が表示されます。
また、Namespaceを宣言している箇所にカーソルを合わせると
「Namespace AAA.BBB」と表示され想定している「Namespace XXX.AAA.BBB」とはなりません・・・。

ルート名前空間の設定としては
プロジェクト「XXX」のプロパティ→アプリケーション→ルート名前空間欄「XXX」
としております。

ルート名前空間が反映されない原因についてご教示いただきたく存じます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/05/17 03:09

ASP.NET のタグをつけてください。 何を作っているか書いてください。Web Forms? MVC? Web Pages? Razor Pages? その他? 開発環境(特に .NET Framework か Core のどちらかとそのバージョン)を書いてください。 問題の部分が ASP.NET アプリの中でどのように使われているかを書いてください。 以上を質問欄を編集して追加情報として追記してください。
arumikann

2021/05/17 04:40

修正依頼ありがとうございます! つたない内容となりますが、追加情報を記載いたしました。 その他不足あればお教えいただけると幸いです!
guest

回答1

0

ベストアンサー

関係するファイル Class1.vb、WebForm1.aspx.vb と Root namespace は以下のようになっているのですよね?(違うのは、質問者さんのケースで Root namespace は XXX という点だけ)

イメージ説明

その条件で確認してみました。まず、Class1.vb ですが、内容は質問者さんのコードと同一として、名前空間 AAA.BBB は Root namespace を加えたものとして認識されています。

イメージ説明

その Class1 を WebForm1.aspx.vb から以下のように利用できます。

イメージ説明

Imports WebApplicationVB.AAA.BBB で問題なく、質問者さんが書かれている、

Import文にて「指定された名前空間、または型が、パブリックメンバーを含んでいないか・・・」と言う警告が表示されます。

という警告は出ません。

ちなみに、Imports WebApplicationVB.AAA.BBB の BBB にマウスのカーソルを当てると以下のようになります。

イメージ説明

質問者さんのケースで何故上記と状況が異なるのかは分かりません。自分のプロジェクトと見比べてどこか違う点は無いか確認してみてください。

投稿2021/05/17 05:24

編集2021/05/17 05:28
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

arumikann

2021/05/17 06:14

回答ありがとうございます! また、わざわざ検証いただき、ありがとうございました・・・! Class1の格納されている階層によってうまくいかないのかな? と思いました。 試しに 「XXX(プロジェクト名)」-「AAA」-「BBB」-「Class1.vb」 とした場合、回答いただいた通り、問題なく認識しました。 実際の階層は伏せておりましたが以下となります 「XXX(プロジェクト名)」-「App_Code」-「custom」-「appl」-「Class1.vb」 上記階層に格納するとルート名前空間が適用されません。。。 引き続き試行錯誤してみます!
退会済みユーザー

退会済みユーザー

2021/05/17 06:23 編集

> 実際の階層は伏せておりましたが以下となります そういうのはナシでお願いします。お互いの時間と労力の無駄につながります。 Web アプリケーションプロジェクトか Web サイトプロジェクトかどちらで作っているのですか? 最近は前者が主流ですがその場合は App_Code フォルダは使ってはいけません。2 重コンパイルの問題があるので。
arumikann

2021/05/17 06:32

>そういうのはナシでお願いします。 大変失礼いたしました・・・。 お察しの通り「Webアプリケーション」で作成しておりました。 ネットで調べたところプロパティより「ビルドアクション」を 「コンテンツ」から「コンパイル」へ変更したところ 想定通りの動きとなりました! 大変お手数をおかけしました。 お付き合いいただきありがとうございました!
退会済みユーザー

退会済みユーザー

2021/05/17 06:44 編集

> ネットで調べたところプロパティより「ビルドアクション」を「コンテンツ」から「コンパイル」へ変更したところ想定通りの動きとなりました! それ、ダメです。上にも書いたように 2 重コンパイルの問題が出ます。とにかく App_Code フォルダは使わないようにしてください。Web アプリケーションプロジェクトで App_Code フォルダを使うケースもありますが、ごくごく一部の例外だけです。 2 重コンパイルの問題は Microsoft の以下のドキュメントに書いてあるので読んでください。 To convert pages and classes to use partial classes in a Web application project https://docs.microsoft.com/en-us/previous-versions/aspnet/aa983476(v=vs.100)?redirectedfrom=MSDN#to-convert-pages-and-classes-to-use-partial-classes-in-a-web-application-project
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問