2011-11-14 69 views
1

我開發將由非.NET客戶端(如Java客戶端)所消耗的WCF服務(basicHttpBinding的)。但是現在我想知道,DataContract是否會支持jave和其他非.net客戶端?如果不是我的回報類型。基本上我的服務將被非.NET客戶端使用,我不知道DataContract是否支持非.NET客戶端。WCF DataContract是在java還是非.net客戶端中工作?

下面是我的合同和服務合同的代碼。

[DataContract] 
public class DataResponse 
    { 
     string customerId; 
     string version; 
     string email; 
     string firstName; 

    [DataMember] 
public string CustomerId 
     { 
      get { return customerId; } 
      set { customerId = value; } 
     } 

    [DataMember] 
     public string Version 
     { 
      get { return version; } 
      set { version = value; } 
     } 

[DataMember] 
     public string Email 
     { 
      get { return email; } 
      set { email = value; } 
     } 

    [DataMember] 
     public string FirstName 
     { 
      get { return firstName; } 
      set { firstName = value; } 
     } 
} 

[ServiceContract] 
    public interface ICustomerProfile 
    { 
     [OperationContract] 
     DataResponse GetCustomerProfile(string requestObj); 
    } 

請做好必要的工作。

回答

0

YES!

WCF序列化到一切XML消息,由XML模式(XSD)文件中定義。

所以只要你在另一端的客戶端可以理解和解釋XSD和WSDL文件(基於SOAP的WCF服務),然後是 - 該客戶端將能夠讀取您的數據。

這是WCF的整點 - 這是最可互操作的Web服務標準和周圍任何半路出家的客戶可以談論它...

+0

我的合同看起來像是如果我想發送數據數組 – user995099

+0

@ user995099:你只是定義一個標準的東西數組......'something [] myArray' –

+0

你可以給我上述合同的樣本 – user995099

0

取決於你定義,而不是合同的綁定。最糟糕的情況是,您必須爲SOAP,JSON或任何其他兼容技術定義另一個綁定。 IE瀏覽器。 WS-HTTP將不起作用。

+0

你是什麼意思「WS-HTTP不起作用」?這取決於客戶端 - 如果它是一個Java應用程序,它可能會說WS-HTTP。移動設備可能不會。 ...但這不是一個WCF的問題 - 這是一個客戶端(設備)功能的問題, –

相關問題