3


0

現在のプロジェクトで定義されている拡張メソッドがいくつかあります。 それはVB.NETプロジェクトです。 App_Codeディレクトリにあるファイル内でこれらのメソッドを使用しても問題ありません。これは、メソッドを定義した場所と同じです。 しかし、私のpage.aspx.vbページの背後にあるコードでは、これらのメソッドは表示されません。 運が悪くても、正しい名前空間を含めるようにしました。

ファイルビハインドコードで拡張メソッドを呼び出せない理由について誰かが考えを持っていますか?

App_Codeフォルダーに定義されています

_パブリック関数GetSelected(ByVal apps(予定)としてのアプリ)予定としてDim selected = In aアプリから_ _ where a.Selected = True

選択を返します。単一終了関数

別のクラス内のApp_Codeフォルダーに定義されている(これはうまく機能します)

パブリックReadOnlyプロパティSelected()予定として取得Return _appointments.GetSelected()End Get Endプロパティ

ファイルの背後にあるコード内のApp Rootフォルダーに定義されている(機能していない)

パブリックReadOnlyプロパティSelected()予定として取得Return _appointments.GetSelected()End Get Endプロパティ

それらはすべて同じアプリケーション内にあり、外部参照はありません。 そして私がプロジェクトをビルドするとき、私が背後にあるコードで拡張メソッドを使用しようとするまで、エラーはありません。 その時点でのエラーは「GetSelected」は「System.Collections.Generic.List(Of Appointment)」のメンバーではありません

4 Answer


10


あなたのモジュールがPublicとマークされていることを確認してください。


1


メソッドを「普通に」呼び出すようにしてください。 あたかもそれらが標準の共有メソッドであるかのように。 名前空間で型を完全に限定せずにそうすることができるならば、非常に奇妙なことが起こっています。 あなたは他のVB9機能を使うことができますか?

型を完全に修飾することによってのみそれを呼び出すことができるならば、それは輸入問題です。

あなたがそれを全然呼ぶことができないならば、それは参照問題です - しかし、私は今まで私自身がApp.NETで問題を抱えていたのではないかと思います。 。 うまくいけば、これらの質問に答えることはあなたをもっと助けてくれる有能な人を助けてくれるでしょう:)

編集:OK Visual Studioの同僚はいますか? あなたは彼らのマシンでそれを試すことができますか? インストールに何か問題があるようです。


0


あなたはそれらがあるところでアセンブリを参照しようとしましたか? また、プロジェクトをビルドして、エラーメッセージから何が問題なのかを推測してみてください。 あなたはそれらのいくつかをここに置くこともできます。


0


VSを閉じて再度開いてみましたか。