我正在使用最新版本的 ServiceStack 和 NuGet。我已经有了一个基本的服务设置,可以与 JsonServiceClient 很好地配合,并且按预期通过了所有单元测试。
不幸的是,我还尝试支持 SOAP 和 Visual Studios“添加服务引用”代理生成,以便与希望继续使用此类框架的其他组进行互操作。
我遇到的问题是,我们的 DTO(包括 Response 对象)没有填充到 ServiceStack 通过元数据页面生成的 XSD 或 wsdl 中。这看起来很奇怪,因为在查看各个 SOAP 操作示例时,生成的示例中显示了正确的响应和 DTO。
响应示例:
Namespace Operations
<DataContract>
Public Class GetItemResponse
Implements IHasResponseStatus
<DataMember>
Public Property ResponseStatus As ResponseStatus Implements IHasResponseStatus.ResponseStatus
<DataMember>
Public Property Item As Item
End Class
End Namespace
DTO 示例:
Namespace Types
<DataContract>
Public Class Item
<DataMember>
Public Property ItemIdentifier As String
<DataMember>
Public Property ItemId As Guid?
<DataMember>
Public Property ItemName As String
<DataMember>
Public Property Description As String
<DataMember>
Public Property InstallDate As DateTime?
<DataMember>
Public Property FeatureNumber As String
<DataMember>
Public Property ModelNumber As String
End Class
End Namespace
我还使用 Assembly: ContractNamespace 属性来设置 XML 命名空间。
我已经下载了源代码并自己做了一些调查。我不确定这个更改有多新,但似乎为了将 DTO 和 Response 对象包含在 wsdl 中,您需要添加一个查询字符串,如“?includeAllTypes=true”。
我还使用 ServiceStack BasicAuthProvider 设置,这会导致分配角色和取消分配角色自动添加到服务中。这些调用的请求和响应对象仍然无法进入 wsdl 并导致“添加服务引用”失败。幸运的是,我们没有使用它们,所以如果我能找到另一个配置设置来删除它们,那么所有这些都应该可以正常工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)