wcf - 如何在wcf中使用MessageParameterAttribute

标签 wcf data-transfer servicecontract

我想知道wcf中的MessageParameterAttribute有什么用。

在我的函数中:

[OperationContract]
public float GetAirfare(
[MessageParameter(Name=”fromCity”)] string originCity,
[MessageParameter(Name=”toCity”)] string destinationCity);

我不在实现中的任何地方使用 fromCity 或 toCity,甚至在使用服务时也不使用。那给它起个名字有什么意义呢?

最佳答案

该属性用于控制序列化。当您想要在描述传入消息的生成的 XSD 架构中使用关键字或类型名称时,它会特别有用。同样,您可以控制响应消息中返回值的 XML 元素名称。它也可以是一个有用的属性,用于标准化 XML 元素命名约定,与 CLR 命名约定分开。例如,您可能更喜欢对参数名称使用驼峰式大小写,对 XML 使用 Pascal 大小写。

如果我们使用您提供的代码片段作为示例,请求将如下所示:

<s:Body>
    <GetAirFare xmlns="yournamespacehere">
        <fromCity>Chicago</fromCity>
        <toCity>Las Vegas</toCity>
    </GetAirFare>
</s:Body>

关于wcf - 如何在wcf中使用MessageParameterAttribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2816520/

相关文章:

c# - linq-to-sql 不会序列化引用

c# - 如何将 Fluent MEF 注入(inject) WCF

model-view-controller - 什么是数据传输对象 (DTO)?

c# - 如何在 C# 中通过代码设置 ServiceHostingEnvironmentSection.AspNetCompatibilityEnabled

json - 通过 SSL 使用 JSONP 的 WCF 服务

java - 数据未传输到新 Activity

amazon-s3 - 从 Amazon S3 下载 Assets 的速度取决于哪些因素?

影响客户的 WCF 契约(Contract)变更

c# - 在 WCF Rest 端点中使用参数 "params string[]"