2

非常に古いアプリケーションがぶら下がっています。書き換えるブロック上にあります。しかし、非常に複雑なため、書き直しは先送りされ続けています。

Delphi 5アプリケーションでWCF Webサービスを呼び出す方法があるかどうかを知る必要がありますか?

Delphi 5 がリリースされたとき、WCF はその発明者の目にはちらつきさえなかったと私は知っています...しかし、それは可能でしょうか? もしそうなら、どのように?

4

3 に答える 3

5

SOAP over HTTP を使用して、WCF Web サービスと通信できます。Delphi 5 は SOAP をある程度サポートしていますが、私の経験では、初期の実装は .NET 2.0 (またはそれ以降) の WSDL と特に互換性がありません。WSDL をインポートして、Delphi がそれをどのように処理するかを確認したいと思うかもしれませんが、私は期待を裏切りません。

それが機能しない場合、その下にあるのは単なる一連の Web リクエストであるため、理論的には、独自のマーシャリング ルーチンを使用して (たとえば、Indy HTTP の上で) 求めていることを実行できます。問題は、リクエストとレスポンスを Delphi 5 で操作できるデータ構造にマーシャリングするのはどれくらい簡単かということです。

別の方法として、適切な言語 (.NET など) でプロキシ/ラッパーを作成し、より Delphi 5 に適したインターフェイスを公開することを検討してください。

于 2011-03-23T20:02:49.983 に答える
2

Delphi 5 は、そのままでは Web サービスの呼び出しをサポートしていません。その機能は Delphi 6 で導入されたためです。

Web サービスの Delphi サポートは、Delphi 2005/2006 時代に更新され、新しい SOAP バージョン (たとえば .NET 2.0 以降で使用される) と互換性があります。

RemObjects には、Delphi の Web サービス (およびその他の多くの通信要素) の代替実装がありますが、Delphi 5 をサポートしていません。

Delphi 5 は HTTP リクエストを実行し、XML を使用できるため、それに基づいて独自のものを構築できます。一般的な方法でこれを行うには、数週間ではないにしても、少なくとも数日はかかりますが、1 つの Web サービス呼び出しに対してのみ機能する特定のソリューションは、より短い時間枠で実行できる可能性があります。

于 2011-03-26T07:52:01.587 に答える
1

WCF Web サービスは単なる Web サービスですよね? WCF サービスがトランスポートに http を使用していることを考えると、他の Web サービスと同様に扱うことができるはずです。それがSOAP、REST、またはその他の形式のメッセージパッシングであるかどうかに関してさえ、実際には無意味です。Delphi 5 が Web サービスを呼び出すことができる場合、WCF サービスを呼び出すことができるはずです。

Web サービスを所有している場合、話は明らかにさらに良くなります。

于 2011-03-23T20:00:54.937 に答える