.net - 从WCF客户端调用ServiceStack服务

标签 .net wcf servicestack

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

关于.net - 从WCF客户端调用ServiceStack服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16355738/

相关文章:

c# - 在 C# 中缓存反射属性及其自定义属性

wcf - 无法从配置文件中找到具有名称和契约(Contract)的端点元素

wcf - Json.net 无法反序列化复杂类型列表

servicestack - 是否有一个使用新 API 的相当完整的示例项目服务堆栈?

c# - Ninject Factory 扩展将多个具体类型绑定(bind)到一个接口(interface)

c# - 重新托管的 WF4 设计器中参数的默认值无法解析

.net - 使用 BuildTools_Full.exe 安装时,MSBuild.exe 在 Windows 中安装在哪里?

entity-framework - Entity Framework 代码优先的 WCF

servicestack - 如何使用自托管 ServiceStack 忽略路由

ServiceStack JsonServiceClient OnAuthenticationRequired