3

App_Codeにクラス(MyClass.cs)があるとします(プロジェクトではなく、ASP.NET Webサイトを使用します)。クラスに割り当てられた名前空間はありません。

そのクラスをWebサイトの.aspxページで有効にするにはどうすればよいですか?web.configファイルには何を入れる必要がありますか?どこに置く必要がありますか?

<アセンブリタグを追加しますか、それとも<タイプを追加しますか??

アセンブリタグにはバージョン、カルチャ、公開鍵が必要なため、コンパイル時にこれらの値が何であるかはわかりません。

タイプタグを追加するだけですか?web.configのどこに配置しますか?

編集: わかりました、私は私の答えの一部を見つけました。IISで「 http:// localhost / MyFolder」が「アプリケーション」として設定されていなかったため、エラーが発生していました。ただし、「http:// localhost / MyFolder2http:// localhost/MyFolder3など 」というフォルダがたくさんあります。

新しい質問:MyFolderをアプリケーションにせずに、正しく実行する方法はありますか?「codesubdirectories」タグについて聞いたことがありますが、それは便利で、どこに配置すればよいですか?ありがとう。

4

6 に答える 6

2

これは、asp.net 2.0 Webサイトが最初に導入されたときに発生した、動的コンパイルの文書化が不十分な側面の1つです。

ただし、特定の質問に対する実際の回答では、App_Codeのクラスで何をしようとしているのかを正確に説明する必要があります。ほとんどの場合、ページでこれらのクラスを使用するために名前空間やアセンブリ名について心配する必要はありません。クラス名を使用するだけで、コンパイラがそれを理解し、すべてを接続します。

これで遭遇した最大の例外は、app_codeに入れたWebコントロールを使用する場合です。それらの場合は、aspxページに@Registerディレクティブが必要です...そのためには、アセンブリ名と名前空間が必要です。

app_code内のファイルは、「__ code」という名前のアセンブリにコンパイルされます(これには1つではなく2つのアンダースコアがあることに注意してください)。これは、Registerディレクティブまたはweb.configなどのアセンブリ名が必要な場合に使用できるものです。

しかし、私が知る限り、名前空間ブロックでそのクラスを明示的にラップしない限り、名前空間を必要とするレジスタディレクティブまたは一部のweb.config設定でクラスを使用することはできません。

于 2009-03-23T06:30:14.633 に答える
2

Webサイトでは、App_codeフォルダー内に名前空間は必要ありません。app_codeフォルダー内のクラスを参照するためにweb.configに入る必要はありません。

于 2009-03-23T01:45:15.520 に答える
1

何もする必要はないと思います。これが、Webサイトの「プロジェクト」の仕組みです。App_Code内のすべてがコンパイルされます。

于 2009-03-23T01:45:54.550 に答える
1

編集して、App_Codeフォルダーをサイトのルートに移動してみましたか?

/App_Code
/MyFolder
/MyFolder2
/MyFolder3

それはあなたの問題に対処するかもしれません。

スコットガスリーのヒント/トリックもご覧ください。

VS2005Webアプリケーションを使用したサブWebプロジェクトの作成

ただし、これはWebサイトではなく、Webアプリケーションプロジェクトを使用します。

CodeSubDirectories構成要素を見ると(おそらくこれを使用できます)、ルートweb.configで定義する必要があると思います。

また、<assembly>参照には、アセンブリに厳密な名前が付けられている(したがって、これらの値がある)場合にのみ、バージョン、カルチャ、および公開鍵の詳細を含める必要があることに注意してください。

于 2009-03-23T14:05:35.660 に答える
0

クラスがパブリックであることを確認してください。

于 2009-03-23T06:44:13.163 に答える