Silverlight 5,从WCF Ria服务返回,VB.NET - 简单的Hello World

时间:2013-05-03 06:36:05

标签: vb.net return silverlight-5.0 wcf-ria-services async-await

我无法在任何网站上找到(是的..我花了好几个小时或几个小时搜索/阅读/测试),这是一种通过Return调用简单的Hello World函数的方法,并将其显示给用户。

这是我的WCF类代码:

Imports System.ServiceModel
Imports System.ServiceModel.Activation

<ServiceContract(Namespace:="Servicio")>
<AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Allowed)>
Public Class ServicioBD

<OperationContract()>
Public Function ReturnString(ByVal number As Integer) As String

    If number = 1 Then
        Return "Hello World!"
    Else
        Return "Bye World!"
    End If

End Function

我添加了名为“ServicioWCF_BD”的服务。

这就是我从MainPage.xaml调用它的方式:

Private Sub SayHello()
Dim wcf As New ServicioWCF_BD.ServicioBDClient
    Dim message As String = wcf.ReturnStringAsync(1)  'ERROR THE EXPRESSION DOESNT GENERATE A VALUE
    MessageBox.Show(message)
End Sub

当我尝试从函数visual获取值时,表示错误:“表达式不会生成值”。

我希望你能帮助我,实际上它是我第一次如此努力地使用看起来如此简单的东西...... *叹气*

1 个答案:

答案 0 :(得分:1)

wcf.ReturnStringAsync(1)的返回值很可能是Task类型而不是string。

你的SayHello子应该看起来像:

Private Sub SayHello()
    Dim wcf As New ServicioWCF_BD.ServicioBDClient
    Dim message As String = wcf.ReturnStringAsync(1).Result
    MessageBox.Show(message)
End Sub

或者,取决于您的来源:

Private Async Function SayHello() As Task
    Dim wcf As New ServicioWCF_BD.ServicioBDClient
    Dim message As String = Await wcf.ReturnStringAsync(1)
    MessageBox.Show(message)
End Sub