web.configからapp_code classファイルに共通名前空間を適用します
-
10-10-2019 - |
質問
私はASP.NET環境に比較的新しいです。
最近プロジェクトに取り組んで、私は問題を発見しました
つまり、system.ioを任意のすべてのファイル関数に追加する必要がありました。 SQL関数を使用する場合も同じです。つまり、その名前空間の任意の方法を完全に使用する必要がありました。
System.IO.FileStream fs = null;
代わりに
FileStream fs = null;
したがって、要するに、より多くのタイピング時間が必要であるだけでなく、特定の方法の背後にある名前空間を覚えることも困難です。
しかし、解決策を見つけました。
次のセクションをweb.configに追加することにより、私のページはすべて自動的にその名前空間にアクセスできます
<namespaces>
<add namespace="System.Data"/>
<add namespace="System.Data.SqlClient"/>
<add namespace= "MySql.Data.MySqlClient"/>
<add namespace="System.IO"/>
</namespaces>
上記の問題を整理しました。私は今、新しいものに直面しています。私のアプリケーションには、app_codeフォルダーに多数のコードページがあります。 app_codeフォルダーでは、私のすべてのページに次のヘッダーが必要です
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using System.IO;
web.configに配置された宣言がこのフォルダーに配置されたクラスで機能していない理由については、困惑するかもしれません。それらは同じWebアプリケーションの一部です。今、私はすべてのドキュメントでもそれの世話をしなければなりません。
App_Codeフォルダーに共通の名前空間を持つ方法に関する情報を共有できれば、感謝するでしょう。
解決
ドキュメントによると、できません using
指令 ファイルごとです:
使用指令の範囲は、表示されるファイルに限定されます。
ただし、ディレクティブをファイルに使用する必要があるショートカットがあります。
現在使用していないものを入力すると、最初の文字の下に青いアンダースコアが表示されます。 Ctrl+.)、メニューで「使用...」を選択し、Visual Studioはファイルの上部に正しいステートメントを自動的に挿入します。
他のヒント
これは、app_codeの特別な性質によるものだと思います。 app_code内のファイルは通常、クラスファイル(つまり、WebForms、ユーザーコントロールなどではなく、コードファイルだけではありません)であるため、すべて特定の言語コンパイラ(csc.exeまたはvbc.exe)のみでコンパイルされます。プロジェクトの他のページ(今回はすべてのWebFormsなど)は、web.configファイルのコンテンツを考慮したASP.NETコンパイラでコンパイルされています。