0

App_Code フォルダーで宣言されたクラスがあります。このクラスには、Portfolio 型を返す public 共有メソッドが含まれています。

このメソッドを呼び出して、ASCX コントロールの 1 つで Portfolio タイプのオブジェクトを初期化しようとすると、「Jaguar.Portfolio タイプの値を Jaguar.Portfolio に変換できません」というメッセージが表示されます。

これは「ウェブサイト」プロジェクトです。CType と DirectCast を使用してみましたが、サイトをビルドしようとすると、同じコンパイル エラーが発生します。

ascx コントロールのコード ビハインド ファイルで、以下にリストされているコード行を使用しています。

Dim pObjSvc As Jaguar.Portfolio = ClassName.GetPortfolio
4

4 に答える 4

2

Portfolio とも呼ばれる Web ページまたはユーザー コントロールはありますか? どの Portfolio オブジェクトを使用するかで混乱する名前空間の衝突が発生する場合があります。この場合は、クラス/モジュールの名前、またはコントロールまたはページのコード ビハインド クラスを変更する必要があり、すべての設定が完了している必要があります。

于 2008-12-26T15:36:10.100 に答える
1

同じ問題を抱えている人が他にもいるようです:

ASP Net - タイプ「MyNamespace.MyClassName」の値を「MyNamespace.MyClassName」に変換できません

他のいくつかのソリューションのアセンブリを使用する ASP.Net アプリケーションがあります。自分のマシンでアプリケーションをテストするとき、参照されているすべてのアセンブリを nmake を使用してビルドします。最新のアセンブリは、ASP.NET アプリによって参照される共通ディレクトリに配置されます。

時折、次のエラーが表示されます: デバッグ ビルドを実行するときに、"MyNamespace.MyClassName" 型の値を "MyNamespace.MyClassName" に変換できません (さまざまなクラスに多くのエラーがあります)。私は運がないので次のことを試しました:

ASP.Net アプリケーションを構築する ASP.Net アプリケーションを再構築する VS を閉じて ASP.Net アプリケーションを構築する asp.Net アプリケーションを再構築するために VS.Net を閉じます IISreset およびアプリケーションを構築/再構築します

nmake を実行して、参照されているすべてのアセンブリをビルドすると、ASP.Net アプリケーションをビルドできます。

これの原因についてのアイデアはありますか?それを修正する簡単な方法はありますか?

悲しいことに、質問の著者は決定的な答えを見つけられませんでした。しかし、解決策を見つけるのに役立つヒントが含まれている可能性があります。

更新: ASP.NET Web サイトでそれが可能かどうかはわかりませんが、プロジェクト自体の (一時的な) アセンブリへの参照を誤って追加したのではないでしょうか? それはエラーを説明するでしょう。bin および obj フォルダーの内容も削除してみてください。

于 2008-12-26T16:38:22.860 に答える
0

aspx ページがビジネス オブジェクト クラスと同じ名前で作成されたときに、これと同様の状況を見たことがあります。Portfolio のコード ビハインド クラスを含む aspx ページもありますか?

于 2008-12-27T20:20:42.113 に答える
0

デバッグのヒント:

Portfolio クラスの名前を変更して再コンパイルしてみてください。おそらく、同じ名前のクラスを含む .vb ファイルのどこかに古いアセンブリまたは他のコードがありますか?

于 2008-12-26T16:18:52.180 に答える