【问题标题】:How can I get objects from ASP server to my Silverlight 3 app?如何从 ASP 服务器获取对象到我的 Silverlight 3 应用程序?
【发布时间】:2009-11-29 09:37:33
【问题描述】:

我的 Silverlight 应用程序很小,需要向服务器进行查询,是否可以将对象返回到 silverlight 应用程序或如何与服务器通信?

【问题讨论】:

    标签: asp.net silverlight silverlight-3.0


    【解决方案1】:

    使用 WCF 服务。只要您的对象是可序列化的,运行时就会透明地为您编码和解码它们。

    启用 Silverlight 的简单 WCF 服务如下所示:

    using System.ServiceModel;
    using System.ServiceModel.Activation;
    
    [ServiceContract(Namespace = "")]
    [AspNetCompatibilityRequirements(RequirementsMode =
        AspNetCompatibilityRequirementsMode.Allowed)]
    public class YourService
    {
        [OperationContract]
        public string DoStuff(string arg)
        {
            return arg + "stuff";
        }
    }
    

    您可以通过创建 [DataContract] 将“字符串”替换为您的数据类型。

    【讨论】:

      【解决方案2】:

      在我看来,最好使用 Web 服务向您的 Silverlight 应用程序发送所需的任何内容。建议你结合使用WebClient类和URI类来获取数据。示例:

      Uri uri = new Uri(//the url of you webservice, UriKind.RelativeOrAbsolute);
      

      现在创建一个 WebClient 类的实例并添加一个回调,以便在从 Web 服务读取完成时调用:

      WebClient wc = new WebClient();
      wc.OpenReadCompleted += new OpenReadCompletedEventHandler(CallbackMethod);
      wc.OpenReadAsync(uri);
      

      当从服务器检索数据时,会调用 CallbackMethod。该方法有一个 EventArgs 对象,该对象包含一个名为 result 的属性。您可以使用该属性获取您的数据。

      【讨论】:

        【解决方案3】:

        Silverlight 根本不需要 ASP 来运行,如果您在单独的服务器上有一个数据库,请检查 WCF,然后让 Silverlight 与 WCF 服务通信,然后让服务与数据库通信,如果您想要更透明的东西,然后尝试 WCF RIA 服务,这使您可以在 silverlight 中获得数据访问的中间层方法

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-03-30
          • 2012-12-12
          • 2016-05-25
          • 1970-01-01
          • 2011-02-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多