簡體   English   中英

從WCF客戶端調用ServiceStack服務

[英]Calling ServiceStack service from WCF client

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

我使用實現相同功能的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; }
  ...
}

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

在我的參數類中為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; }
  ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM