我有一些需要向服务器查询的Silverlight应用程序,是否可以将对象返回到silverlight应用程序或者如何与服务器通信?
答案 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中使用中间层数据访问方法