1

SharpDevelop を使用して C# で簡単な Web サービスを作成しました (これは入手したばかりで気に入っています)。

クライアントは VB でそれを望んでいました。幸いなことに、VB.NET に変換する機能があります。それは素晴らしい。すべてのコードを翻訳し、ビルドします。(私は長い間「メモ帳」の男だったので、少し時代遅れに見えるかもしれません。)

しかし、今サービスを読み込もうとすると、このエラーが発生します。

パーサー エラー メッセージ: タイプ 'flightinfo.Soap' をアセンブリ 'flightinfo' から読み込めませんでした。

ソース エラー:

1 行目: <%@ WebService Class="flightinfo.Soap,flightinfo" %>

ビンを削除して再構築し、Google(およびstackoverflow)を検索しました。C# の名残がないか、プロジェクト ファイルを精査しました。

何か案は?

4

3 に答える 3

1

VB.NET では、名前空間の宣言は、プロジェクトの既定の名前空間に対して相対的です。したがって、プロジェクトのデフォルトのネームスペースが XY に設定されている場合、Namespace Zとの間のすべてEnd Namespaceが XYZ ネームスペースになります。C# では、プロジェクトの既定の名前空間に関係なく、完全な名前空間を指定する必要があります。そのため、C# プロジェクトにデフォルトの名前空間 XY があった場合でも、CS ファイルにはnamespace X.Y宣言が含まれます。VB に変換した後、デフォルトの名前空間とファイル内の名前空間宣言の両方が同じままである場合、クラスは XYXY 名前空間になります。したがって、あなたの場合、Soap クラスは現在、flightinfo.flightinfo 名前空間にあります。したがって、次の 3 つの解決策が考えられます。

  • asmx ファイルを次のように変更します。

  • プロジェクトからデフォルトの名前空間を削除します

  • vb ファイルから名前空間宣言を削除します。
于 2008-10-14T13:11:31.630 に答える
0

この問題は、プロジェクト アセンブリに異なる命名規則を使用している VB.NET および C# プロジェクトと、プロジェクトの名前空間の使用方法が原因である可能性があります。少なくともそれは私が探し始めることでした。

于 2008-09-16T13:20:50.953 に答える
0
<%@ WebService Class="flightinfo.Soap,flightinfo" %>

あなたのクラスの名前は何ですか?

于 2008-09-12T22:44:47.730 に答える