我有这样的方法
<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.List
1 [System.String]'不能由'QueryStringConverter'转换。 UriTemplate查询值的变量必须具有可由'QueryStringConverter'转换的类型。
答案 0 :(得分:0)
正如错误所述,WCF默认不知道如何将查询字符串参数(字符串)转换为List(Of String)
,这是strErrMsg
参数的类型。您可以将其更改为已知类型(字符串,数字,布尔值),或者您可以(如错误所示)向您的服务添加QueryStringConverter
以“教”它如何从查询字符串转换为那种类型。您可以在http://blogs.msdn.com/b/carlosfigueira/archive/2011/08/09/wcf-extensibility-querystringconverter.aspx的帖子中找到有关查询字符串转换器的更多信息。