2009-06-18 28 views
1

Web参照を追加せずにASP.NETのインラインコードブロックからWebサービスを呼び出すことはできますか?もしそうなら、指示を出すことができますか?asp.netインラインコードブロックでWebサービスを呼び出す

+0

なぜコードビハインドからサービスを呼び出すのと違うのですか?それを試して問題を抱えましたか?もしそうなら、あなたの質問を編集して、あなたが持っていた問題を言いなさい。 –

+0

Web参照を追加せずにこれを行う方法がわかりません。 –

+0

なぜWeb参照を追加しませんか?どうしたの? –

答えて

1

追加を持っている含ま別のC#プロジェクト(コンソールアプリケーションなど)のWeb参照。次に、「すべてのファイルを表示」に切り替えます。あなたのために作成された実際のWebサービスプロキシを含む隠し.csファイルがあります。 (同じことをするコマンドラインツールもありますが、名前は忘れました)

生成されたクラスを.aspxにコピーして<script runat="server">ブロックにすることができます。

あなたが実際に必要とするものはわかりませんが、Webアプリケーションのソースコードにアクセスできませんか?

もう1つの解決策は、Webプロキシ用の.NET DLLを作成し、Assembly.Load()を使用してこのアセンブリを動的にロードすることです。メソッドを動的に呼び出すことは、あまりよくありません。

+0

-1は、生成されたファイルをコピーすることを含む、そのファイルの操作を示唆します。 –

+0

彼の方法は、私が実際に行ったコマンドラインツールを実行するためのショートカットでした。それが解決策であり、私が持っていた要件でそれを行う唯一の方法でした。 –

1

一般的に、インラインコードではコードの背後にあるコードは何でもできますが、コードの背後にあるコードは単にクリーンでファイルを分割しています。

WebServiceプロキシを作成したときに生成された適切な名前空間を最初に含める必要があります。

名前空間には、コードはここで、インラインコードの場合は少し異なっているあなたは違いコーディングホラーについて読みたい場合の例

<%@ Import Namespace="System.IO" %> 

でそれについてgreat article

0

Webサービスのコードファイル(* .cs)がApp_Codeフォルダにある場合は、参照などを必要としません。ただし、Webサービスがプロジェクト内にローカルでない場合や、 App_Codeフォルダ内の別の.csファイルのコードではなく、Web参照が必要です。

私の経験からであり、私はちょうどのような私のWebサービスのWebメソッドのいずれかを使用しています

<%= new MyWebService().MyWebMethod(); %> 

はそれがお役に立てば幸いです。

関連する問題