2009-07-21 11 views
7

ASP.NETには、web.config内で暗黙的に使用される名前空間を宣言できる機能があります。app.configに.NETネームスペースの別名を付けることができますか?

<configuration> 
<system.web> 
    <pages> 
    <namespaces> 
    <add namespace="System.Web.Mvc"/> 
    </namespaces> 
    </pages> 
</system.web> 
</configuration> 

私は(リサイズ、コンソールアプリケーション、特に、Silverlightアプリケーションのような)他の.NET環境のための設定は、この能力を持っているかどうかを知るために興味があります。 の場合は、上記の設定で名前空間のエイリアスができるかどうかが問題です。

コードのこのビットのアナログが、設定経由:

using MyNamespace = System.Web.Mvc; 

編集:私の意図は、このようなSilverlightのXNAのために、同一のAPIを提供することを目的とsilverspriteなどのプロジェクトを見てから来ています。これにより、XNAゲームを一度作成してからSilverlightを使用してWeb上に展開することができます。唯一の問題は、すべてのSilverspriteバージョンのAPIが異なる名前空間にあることです。使用するには、usingステートメントの周りにifdefを使用する必要があります。あなたがコードをプラットフォーム間で変更する必要がないように、シルバースプライトの名前空間に別名を付けることができれば素晴らしいでしょう。

答えて

10

いいえ名前空間はコンパイル時にに必要です。これは、コンパイルが「遅れて」(ASP.NETのように)行われるシナリオで、これは意味があります。

コードがすでにコンパイルされている場合、実行時に名前空間を追加することは何を意味しますか?

実際にusingディレクティブを各ファイルの先頭に書き込まないようにするオプションの直後ですか?その場合、の場合は C#がサポートされています。これはプロジェクトプロパティ(コンパイルと実行ではない)にあります。ただし、C#をサポートしていません。インポートされる名前空間は、現在のファイルのusingディレクティブで指定されたものだけです。

私はだと思います。 VBは "デフォルトの名前空間"という考え方を持っていますが、C#は間違いありません。個人的には、それは良いことだと思う。 (あなたはthis questionを見たいかもしれませんが、実際に重複しているかどうかわかりませんが、あなたの意図は現時点では明確ではありません)。

+0

フェアー...私はおそらくこの機能に精通していない。しかし、悲しいことに、あなたは私が真実であると確信していたことを確認しました:-)また、誰かが好奇心が強い場合のために、上記の目的を明確にしました。ありがとうジョン! –