- - PR -
「既定の名前空間」の取得方法
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-07-23 22:36
お世話になります。
.NetFramework2.0(VS2005)、C#での開発です。 プロジェクトのプロパティから設定できる「既定の名前空間」を、 プログラムにて取得する方法は存在するのでしょうか。 埋め込みリソースを指定する際、 <既定の名前空間>.<フォルダ名>.<(.resourcesファイルに自動変換された後の)ファイル名> でアクセスするのですが、<既定の名前空間>のリテラルを ハードコーディングではなくプログラム上から取得したいのです。 ネットで調べた限りでは、そういった方法を見つけることができませんでした。 .NetFrameworkには、このような手段は用意されていないのでしょうか。 よろしくお願いします。 | ||||||||
|
投稿日時: 2007-07-23 23:05
個人的には懐かしいです…
以前、同じ質問をGotDotNet Japan 掲示板にしました。 .NET開発 > ステップアップ.NET > 既定の名前空間についての質問です http://www.microsoft.com/japan/msdn/community/gdn/ShowPost-31155.htm Lady.BUG様にお答えをいただきました。 [ メッセージ編集済み 編集者: IIJIMAS 編集日時 2007-07-23 23:07 ] | ||||||||
|
投稿日時: 2007-07-23 23:26
IIJIMASさん、ご返答ありがとうございます。
ご提示いただいたURL、参照させていただきました。 結論としては「できない」ということらしいですね。 追加でご相談させてください。 そもそも何故困っているかというと、 問題の「埋め込みリソース取得」処理を 外部の独自フレームワーク内で行っているためです。 (アプリからはF/Wをプロジェクト参照) 複数機能をそれぞれ独立したプロジェクトで作成しており、 「既定の名前空間」もプロジェクトごとに異なるため、 “設計的にリテラル記述は無理”ということになってしまいます。 そもそも「既定の名前空間」とは、新規でクラス等を追加したときに 自動的に名前空間を付与してくれる、という便利機能に過ぎないのでしょうか。 もしそうであれば、既定の名前空間は「アプリケーション名」と同一にして、 クラスの名前空間は手で書き換えていく、といったアプローチをとろうと 思うのですが、こういった手法って問題ないでしょうか。 ※この場合、F/WではAssembly.Getname()でアプリ名を取得。 アプリ名は既定の名前空間と同じ値(というルール)なので、 結果的にリソースを指し示すことができる。 ご助言いただけたら幸いです。 | ||||||||
|
投稿日時: 2007-07-24 00:36
そうです。
フレームワーク内から直接的にアプリケーション管理下のリソースを取得するというのは、イマイチな設計な気がします。 リソース取得用のデリゲートやクラスインスタンスを与えるなど、いくらでも工夫できるんじゃないでしょうか。 [ メッセージ編集済み 編集者: 渋木宏明(ひどり) 編集日時 2007-07-24 00:39 ] | ||||||||
|
投稿日時: 2007-07-24 08:50
渋木宏明(ひどり)さん、ありがとうございます。
お客さんから提供されているフレームワークなので、作りを大幅に改編することができません。(多少のカスタマイズについては許可をもらっているのですが) もう仕方が無いので、前回自分で提示した案で進めてみようと思います。 ありがとうございました。 |
1