gpt4 book ai didi

wcf - 使用 new-webproxyservice 从 powershell 调用 wcf 的奇怪行为

转载 作者:行者123 更新时间:2023-12-01 11:56:49 25 4
gpt4 key购买 nike

谁能给我解释一下:

出于测试目的,我构建了一个非常简单的 wcf 服务。
使用 New-WebServiceProxy 从 powershell 使用服务我发现了这种奇怪的行为:

如果在 wcf 服务中我有这种返回 int 的契约(Contract):

[OperationContract]
int GetDictionaryLength();

在powershell中调用这个方法会报错,而且这个方法的定义不是我期望看到的

PS C:\ps> $a | Get-Member getdictionarylength | fl *

TypeName : Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy1_022s_pwdservice_svc_wsdl.PWDService

Name : GetDictionaryLength

MemberType : Method

Definition : System.Void GetDictionaryLength(System.Int32&, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 GetDictionaryLengthResult, System.Boolean&, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 GetDictionaryLengthResultSpecified)

像这样改变契约:

[OperationContract]
string GetDictionaryLength();

在 powershell 中做得很好。

这是为什么?

WCF 在 .net 4.0 中Powershell 是 V2

最佳答案

试验您的答案,然后最终发现 this answer ,如果您只需将 [XmlSerializerFormat] 添加到操作契约(Contract),似乎所有问题都会消失,方法签名将恢复正常。至少我在针对 2.0 .Net 框架和 powershell 进行测试时遇到了问题。

关于wcf - 使用 new-webproxyservice 从 powershell 调用 wcf 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6343376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com