我有一个测试项目,其中包含对WCF服务的服务引用和包含服务代码的服务项目。它有一个参数,用于返回字符串值。
<OperationContract()>
Function Action(parameter as String) As Boolean
在测试代码中,我声明了一个变量并将其传递给服务调用。调用完成后,将检查参数的值。
Dim parameter As String = String.Empty
Dim result As Boolean = service.Action(parameter)
Assert.IsTrue(result = True)
Assert.IsTrue(parameter.Length > 0)
当我第一次测试时,这个参数在调用服务后仍然是空的,所以我将By Ref
添加到函数中,但现在当我在立即窗口中检查它的值时,我得到一个'parameter' is not declared. It may be inaccessible due to its protection level
错误。
此错误的原因是什么?
答案 0 :(得分:2)
这是由简单的疏忽引起的。当我更改服务界面以将参数从隐含的'By Val'切换为明确的'By Ref'时,我没有在我的测试项目中更新服务引用。
一旦我更新了服务参考,它就可以正常工作。