none
silverlight 中wcf服务引用的问题 RRS feed

  • 问题

  • 我是个sl初学者,这些问题我确定是不是该这样来问。先说一下解决方案中的几个项目(VB.NET):

    a:wcf服务库
    b:asp.net app
    c:silverlight app

    在b中引用a后,a中的Function是可以正常使用的;而在c中引用a时,所有的function这个时候都成sub了。

    wcf类库中的一个服务就是系统自动创建的GetDataUsingDataContract:

     

      Public Function GetDataUsingDataContract(ByVal composite As CompositeType) As CompositeType Implements IService1.GetDataUsingDataContract
        If composite Is Nothing Then
          Throw New ArgumentNullException("composite")
        End If
        If composite.BoolValue Then
          composite.StringValue &= "Suffix"
        End If
        Return composite
      End Function

     

    ASP。NET下调用是正常的:

     

    Dim proxy As Sample.Service1Client = New Sample.Service1Client
    Page.ClientScript.RegisterStartupScript(
     Me.GetType(),
     "js",
     String.Format("alert('{0}')", proxy.GetDataUsingDataContract(New Sample.CompositeType With {.BoolValue = True, .StringValue = "Dodu"}),
     True))
    proxy.Close()

    而在sl中调用的时候,这来就不对了:

    Dim Proxy As Sample.Service1Client = New Sample.Service1Client
    MessageBox.Show(Proxy.GetDataUsingDataContractAsync(New Sample.CompositeType With {.BoolValue = True, .StringValue = "Dodu "}))
    这个时候Proxy.GetDataUsingDataContractAsync就变成Sub了,这是为什么呢?


    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/
    2010年6月21日 13:43

答案

  • 你好,

          在Silverilght中对Service的访问都是以异步的方式来进行的。你需要从Callback的参数中获得返回结果。

    • 已标记为答案 Dodu.NET 2010年6月24日 1:32
    2010年6月23日 7:02

全部回复