2013-05-03 161 views
3

我有一個使用WCF開發的舊SOAP服務,還有一些使用WCF調用服務的.NET客戶端。從WCF客戶端調用ServiceStack服務

我使用實現相同功能的ServiceStack框架創建了一項新服務。
是否可以從WCF客戶端調用ServiceStack,而無需對客戶端進行任何代碼或配置更改?

我可以隨意對ServiceStack服務進行任何必要的更改。

編輯:
向前一小步。
將正確的名稱空間添加到AssemblyInfo.cs並將「/ soap11」附加到URL後,最終調用了正確的服務方法,但不傳輸參數數據。

在客戶端調用的WCF代理方法接受一個參數「e」,它是一個具有一些字符串和int屬性的類。
通過線路發送SOAP主體開始:

<MyMethod xmlns="http://mynamespace"> 
    <e> 
    <PropertyA xmlns="http://schemas.datacontract.org/2004/07/MyProject.Service.Entities">somestring</PropertyA> 
    <PropertyB xmlns="http://schemas.datacontract.org/2004/07/MyProject.Service.Entities">123</PropertyB> 

的ServiceStack DTO的樣子:

[DataContract] 
public class MyMethod 
{ 
    [DataMember] public EventData e { get; set; } 
} 

[DataContract] 
public class EventData 
{ 
    [DataMember] public string ProperyA { get; set; } 
    [DataMember] public int ProperyB { get; set; } 
    ... 
} 

如何添加正確的屬性命名空間定義的服務?
我需要嗎?

回答

2

在我的參數類的DataContract屬性中添加正確的名稱空間解決了問題。

[DataContract(Namespace = "http://schemas.datacontract.org/2004/07/MyProject.Service.Entities")] 
public class EventData 
{ 
    [DataMember] public string ProperyA { get; set; } 
    [DataMember] public int ProperyB { get; set; } 
    ... 
}