如何从ASP服务器获取对象到我的Silverlight 3应用程序?

时间:2009-11-29 09:37:33

标签: asp.net silverlight silverlight-3.0

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

3 个答案:

答案 0 :(得分:1)

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

一个简单的启用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]来将“string”替换为您的数据类型。

答案 1 :(得分:0)

在我看来,最好使用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的属性。您可以使用该属性获取数据。

答案 2 :(得分:0)

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