调用/获取wcf服务时出错

时间:2013-07-10 10:02:25

标签: wcf

我有这样的方法

<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'转换的类型。

1 个答案:

答案 0 :(得分:0)

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