DOBON.NET DOBON.NETプログラミング掲示板過去ログ

名前空間について

環境/言語:[VB.NET(2003,windowsXP)]
分類:[.NET]

いつもお世話になっております。
今回は名前空間を調べていたところ疑問に思う点がありましたので
ご質問させていただきます。

まず新規にプロジェクト(仮にtestと命名)を作成します。その後にForms名前空間内にあるButtonクラスを継承して独自のボタンクラスを作成しました。
生成する際に名前空間の設定は特に行っていないので名前空間はルート名前空間
になります。

そこで、同じプロジェクト内でユーザーコントロールや、フォームクラスを作成
し、独自で生成したボタンクラスを使用するために、”ツールボックスの追加と削除”でライブラリを引き込んだ後に、ボタンをドラックアンドドロップで
配置したところ、以下のようなエラーがでました。
「名前空間'test'は不適切です」

ボタンクラスをnamespaceステートメント内で定義し、名前空間のネストを1つ追加
したら、上記のエラーは発生しませんでした。

同じプロジェクト内で部品クラスを継承し使用する場合は、名前空間を別に定義
する必要があるのでしょうか??

またツールボックスの追加と削除”を使用せずに、最初の独自のボタンクラスでは
なく、Forms名前空間内のボタンクラスをユーザーコントロール内もしくは、
フォームクラス内で定義し、自動で生成されたソースコード手動で独自のボタン
クラスに書き換えたときはエラーが発生しませんでした。

独自で作成した部品クラスを同じプロジェクト内で使用するときは、
名前空間を別にするか、もしくは、自動で生成される部分を手動で書き換える
しか方法がないのでしょうか??

上記の方法しかないと考えると違和感を感じたので記述させていただきました。
私の方の認識が間違っている箇所もあるとおもいますのでご指摘の方
よろしくお願いいたします。
  • 題名: Re[1]: 名前空間について
  • 著者: まどか
  • 日時: 2008/02/19 14:23:33
  • ID: 21484
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
> 独自で生成したボタンクラスを使用するために、”ツールボックスの追加と削除”でライブラリを引き込んだ後に、ボタンをドラックアンドドロップで
> 配置したところ、以下のようなエラーがでました。
> 「名前空間'test'は不適切です」

2003が無いので確認できませんが、
ボタンクラスを作った後にビルドすると自動でツールボックスにプロジェクト名のタブが追加されませんか?
追加されていたら、そこから貼り付けるとどうなりますか?

ツールボックスの追加と削除で選択したものがアセンブリであるなら、
事あるごとにビルドする羽目になるかもしれません。
#参照先を開発しているから

2005でも自プロジェクト内の継承コントロールを貼り付けているフォームがデザイナで表示されないことがあります。
その際はリビルドすると直ります。

また、2003には別アセンブリのフォームを継承したフォームをデザイナで表示できないという既知の問題(仕様)もあります。
■No21481に返信(zonoさんの記事)
> ”ツールボックスの追加と削除”でライブラリを引き込んだ後に、ボタンをドラックアンドドロップで配置したところ、以下のようなエラーがでました。
> 「名前空間'test'は不適切です」

このエラーは配置した時に自動挿入されるコードの位置が不適切 (たとえばクラス外) だったり、あるいは、完全修飾名の衝突が考えられます。
DataSet でも良く起きてしまいますね。
■No21496に返信(じゃんぬねっとさんの記事)
> このエラーは配置した時に自動挿入されるコードの位置が不適切 (たとえばクラス外) だったり、

自動挿入だから、バグってことですか?
■No21497に返信(まどかさんの記事)
> 自動挿入だから、バグってことですか?

もしそうだったら IDE 側の不具合の可能性はありますね。
実際そうなってしまうもの (3rd パーティ製品) はあります。

もしそうだったらの話ですよ。
自動挿入されたコードをまず見た方が良いですという意味です。

DOBON.NET | プログラミング道 | プログラミング掲示板