从WCF客户端调用ServiceStack服务

问题描述:

我有一个使用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; } 
    ... 
} 

如何添加正确的属性命名空间定义的服务?
我需要吗?

在我的参数类的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; } 
    ... 
}