【问题标题】:Converting from RIA Services to WCF Web Services从 RIA 服务转换为 WCF Web 服务
【发布时间】:2012-01-10 17:53:22
【问题描述】:

我必须采取哪些步骤才能从 RIA 服务转换为普通 WCF 服务?

注意事项:

  • 我有 6 种方法的一项服务
  • 我正在来回传递大型对象,我希望对它们进行更多控制,因此我需要切换到 WCF
  • 我使用 Silverlight 作为我的主要客户

【问题讨论】:

    标签: silverlight wcf wcf-ria-services


    【解决方案1】:

    简而言之,如果您将一个大对象来回传递给服务,那么您可能做错了。只需将您的对象发送到服务器,在服务器上执行所有必需的处理,然后简单地将结果返回给客户端。为什么要承担通过网络(通过 HTTP)来回传输大型对象的性能和带宽成本?

    由于您使用 Silverlight 作为主要客户端,因此您将使用异步调用(这是坚持一次调用服务的另一个原因)。您可以通过多种方式管理 WCF 服务的实例化:您可以通过将服务引用添加到 Silverlight 客户端来以最简单的方式进行操作,或者您可以编写一些可以在服务上执行方法的自定义客户端,如下所示:

    client.ExecuteAsync<IService, TResult>(String methodName, Action<TResult> complete, Action<Exception> failure, params object[] parameters)

    然后在您的服务合同中,您应该编写两个版本的操作:同步和异步。为此,请使用编译器条件将两者分开:

    #if(SILVERLIGHT)
    [OperationContract(AsyncPattern = true)]
    IAsyncResult BeginMyMethod(Int32 value, AsyncCallback callback, Object asyncState);
    Double EndMyMethod(IAsyncResult result);
    
    //more operations
    
    #else
    [OperationContract]
    Double MyMethod(Int32 value);
    
    //rest of the methods
    
    #endif
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-22
      • 1970-01-01
      • 2012-01-14
      • 1970-01-01
      • 2011-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多