2011-12-08 4 views
1

WCFサービスがプラットフォームに依存しないかどうかを調べたいつまり、WCFサービスはJavaのように他のプラットフォームから要求を受け取ることができますか?可能であれば、WCFの抽象クラスは他のプラットフォームで動作しますか?たとえば、のコードは、他のプラットフォームので動作しますか?他のプラットフォームから呼び出し可能なWCFサービスと抽象クラスの互換性

- これは一例であり

[ServiceContract(Name = "Service1")] 
public interface IService1 
{     
    [OperationContract] 
    [ServiceKnownType(typeof(Retangle))] 
    [ServiceKnownType(typeof(Square))] 
    string GetShape(Shape shape); 
} 

    [DataContract] 
    public abstract class Shape //is abstract interoperable by other language 
    {  
    } 

[DataContract] 
    public class Retangle:Shape 
    {  
    } 

[DataContract] 
public class Square : Shape 
{  
} 

http://localhost:10287/Service1.svc

おかげ

答えて

2

修飾はい、WCF SOAP、JSONなどの標準的なトランスポートとメッセージプロトコルで使用される場合、REST、HTTP/S他のプラットフォームや言語との相互運用性が高い。実際には、言語とプラットフォームによって、またSOAPを使用している場合に使用されるWS- *プロトコルのレベルによって互換性が異なります。
具体的には、KnownTypeをJavaで使用すると、Javaクライアントが使用するエンタープライズWCFアプリケーションで使用するため、KnownTypeをJavaで使用できます。私たちが使ったJavaスタックはMetroで、IDEはNetbeansです。

WCFサービスを使用して動作するかどうかテストするために、Javaで書かれた汎用SOAPクライアントであるSoapUIを試すことができます。

+0

ご意見ありがとうございます。 WCFの抽象クラスは他の言語と相互運用可能ですか? – Pingpong

+1

クラス自体は相互運用可能ではありませんが、WCFでは契約ではなくコードを共有します。そのため、明示的にクラスをDataContractでマークします。これから、プロキシクラスを生成するためにクライアントに与えるWSDLファイル(契約を表す)が生成されます。プロキシが別の言語を使用して生成される場合、抽象クラスではなくその言語に固有のものがあるかもしれません。他の言語の能力はテストされるべきですが、Javaはあなたのケースを処理できます。 – softveda

+1

サービスの構築、ネットビーンズのダウンロード、Javaでの消費をお勧めします。するのに時間がかかるべきではありません。 – softveda

関連する問題