0

我的 OData v4 客户端使用基于 6.x 版本的 Microsoft.OData.Client 生成的类。

现在它需要调用具有以下定义的操作:

  <Action Name="Resolve">
    <Parameter Name="CertRequestEntity" Type="CertificationRequest" />
    <Parameter Name="CertRequestId" Type="Edm.String" Nullable="false" Unicode="false" />
    <Parameter Name="RequestSuccess" Type="Edm.Boolean" Nullable="false" />
    <Parameter Name="RejectedMessage" Type="Edm.String" Unicode="false" />
  </Action>

借助BodyOperationParameter类很容易构造原始参数,但我找不到任何有关将实体引用构造为参数的正确方法的文档。这可能吗?(我最终使用了带有手卷 JSON 主体的HttpClient 。)

4

1 回答 1

0

请注意,上面写的定义是无效的;第一个参数的类型应该是命名空间限定的。

如果您可以控制架构,最简单的解决方案是使其成为绑定操作(操作定义上的 IsBound="true")。绑定操作类似于 .NET 中的扩展方法——第一个(实体)参数成为“绑定参数”,您可以通过将操作名称 (/Resolve) 附加到您想要的 CertificationRequest 的 URL 来调用该操作解析,传递正文中剩余的(非绑定)参数。

于 2019-10-10T22:59:29.793 回答