【问题标题】:WCF Web service is converting return value to output parametersWCF Web 服务正在将返回值转换为输出参数
【发布时间】:2020-02-08 05:45:17
【问题描述】:

我在 C# WCF Web 服务中有一个方法,如下所示:

[OperationContract]
bool GetEnvironment()

但是,当我将其添加为网络参考时,该方法变为

void GetEnvironment(out bool GetEnvironmentResult, out bool GetEnvironmentResultSpecified);

我已尝试发布和重新发布 Web 服务。我已经从服务中删除了除此之外的所有其他方法,然后重新发布了 Web 服务以验证它没有破坏其他方法之一。我通常使用 DTO,但我真的不敢相信 WCF 不支持布尔值作为返回类型。

更新 1:我已经认识到添加服务引用是最好的方法,因为创建一个新的 C# 项目可以让我完美地使用这些方法。问题是我使用的是 Xamarin,因此不允许我添加服务引用(但应该),它只允许我添加 Web 引用。

【问题讨论】:

  • Best practice 是不使用添加服务参考。如果您遵循指南,那么您不仅可以完全控制客户端代理,还可以完全控制方法签名;参数和返回类型

标签: c# wcf serialization methods boolean


【解决方案1】:

首先,您可以从 WCF 返回 boolean 类型。但是根据using-message-contracts,如果您使用MessageContract 参数,则不能返回布尔值。

关于你在客户端看到的额外参数,wcf-will-not-return-an-int你可以找到答案。它说:

您应该将其作为服务引用(使用名称空间 MData)导入 网络参考。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多