0

我有这样的方法

<OperationContract()>
<Web.WebGet(UriTemplate:="/GetBedTypeList?strErrMsg={strErrMsg}&chrErrFlg={chrErrFlg}&pcompanycode={pcompanycode}&pdiv={pdiv}&ploc={ploc}", ResponseFormat:=WebMessageFormat.Json, BodyStyle:=WebMessageBodyStyle.Wrapped)> _
Function GetBedTypeList(ByRef strErrMsg As System.Collections.Generic.List(Of String), ByRef chrErrFlg As Char, _
                        ByVal pcompanycode As String,ByVal pdiv As Integer, _
                        ByVal ploc As Integer) As System.Collections.Generic.List(Of CWReadClasses.clsBedTypeMaster)

但它给出错误请帮助

合约“iBedTypeMaster”中的操作“GetBedTypeList”有一个名为“strErrMsg”的查询变量,类型为“System.Collections.Generic.List 1[System.String]', but type 'System.Collections.Generic.List1[System.String]”,不能由“QueryStringConverter”转换。UriTemplate 查询值的变量必须具有可由“QueryStringConverter”转换的类型。

4

1 回答 1

0

正如错误所述,默认情况下,WCF 不知道如何将查询字符串参数(它是一个字符串)转换为 a List(Of String),这是您的strErrMsg参数的类型。您可以将其更改为已知类型(字符串、数字、布尔值),也可以按照错误提示添加一个QueryStringConverter到您的服务以“教”它如何从查询字符串转换为该类型。您可以在http://blogs.msdn.com/b/carlosfigueira/archive/2011/08/09/wcf-extensibility-querystringconverter.aspx的帖子中找到有关查询字符串转换器的更多信息。

于 2013-07-10T17:47:12.227 回答