- PR -

アセンブリの名前空間を知るには

1
投稿者投稿内容
CHN
ぬし
会議室デビュー日: 2002/03/07
投稿数: 382
投稿日時: 2004-02-04 21:02
こんばんは。

.NETのアセンブリの名前空間を知るにはどうしたらいいでしょうか?
たとえば、
namespace test
{
public class Class1{}
}
これをコンパイルしてdllにした場合、これを使う側は、どういうコードで
この test という名前空間を見つけるんでしょうか?
Reflectorってツールを使って見るとちゃんと表示できます。
すごく簡単なはずですが、、、よく分かりません。

もしかしたら、すごいアホな質問かもしれませんが
よろしくお願いします。

_________________
ya
大ベテラン
会議室デビュー日: 2002/05/03
投稿数: 212
投稿日時: 2004-02-05 05:42
コード:

private string[] GetNamespaces(Assembly asm)
{
 ArrayList arr=new ArrayList();
 foreach(Type t in asm.GetTypes())
 {
  if( !arr.Contains(t.Namespace) )arr.Add(t.Namespace);
 }
 return (string[])arr.ToArray(typeof(string));
}



こんな感じでいけませんか?Sort、Nullチェックとかはご自由に。
CHN
ぬし
会議室デビュー日: 2002/03/07
投稿数: 382
投稿日時: 2004-02-05 12:03
ありがとうございます。

なかなか、ご回答がなくて昨日必死こいてさがしてました。
ちょっとまた質問ですが、やっぱりすべてすみずみ調べないと漏れがでるんでしょうか?
想定している使い方は結構スピードを重視しますので、できたら
最低限のことでできないかなって思います。
無理でしょうか?

_________________
世界平和を願う!
http://park8.wakwak.com/~chin/

[ メッセージ編集済み 編集者: CHN 編集日時 2004-02-05 12:05 ]
ya
大ベテラン
会議室デビュー日: 2002/05/03
投稿数: 212
投稿日時: 2004-02-05 13:44
引用:


ちょっとまた質問ですが、やっぱりすべてすみずみ調べないと漏れがでるんでしょうか?
想定している使い方は結構スピードを重視しますので、できたら
最低限のことでできないかなって思います。


ランタイム的にはnamespaceなんてないですからね(ただの長い名前)。アセンブリ(正確にはモジュールかな)にはただ一次元配列的にTypeがずらっと並んでいるだけで。

というか、全部調べたとしてそれほど性能差が出るとも思えませんが。むしろ時間がかかるのはアセンブリの読み込みだとかそっちのほうだと思うので。
CHN
ぬし
会議室デビュー日: 2002/03/07
投稿数: 382
投稿日時: 2004-02-05 20:49
ありがとうございます。

ん〜、工夫が必要のようですね。
_________________
1

スキルアップ/キャリアアップ(JOB@IT)