学Silverlight 2系列(17):数据与通信之ADO.NET Data Services
2008-10-03 11:35:40 来源:WEB开发网
当然还可以进行其他的查询,使用filter和orderby等,如http://localhost:8081/BlogDataService.svc/Posts?$filter=Id eq 1&$orderby=Id,这里不在介绍。至此我们的数据服务端就算完成了。下面再实现客户端,XAML不再贴出来,大家可以参考前面的几篇文章,使用WebClient获取数据,返回的结果是一个XML文件:
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
Uri uri = new Uri("http://localhost:8081/BlogDataService.svc/Posts");
WebClient client = new WebClient();
client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted);
client.OpenReadAsync(uri);
}
void client_OpenReadCompleted(object sender,OpenReadCompletedEventArgs e)
{
if (e.Error == null)
{
}
}
我们可以使用LINQ to XML进行数据的读取,在Silverlight项目中建立一个Post类,跟上面的Post类一样,然后使用LINQ to XML读取:
XmlReader reader = XmlReader.Create(e.Result);
XDocument postdoc = XDocument.Load(reader);
XNamespace xmlns = "http://www.w3.org/2005/Atom";
XNamespace ads = "http://schemas.microsoft.com/ado/2007/08/dataweb";
var posts = from x in postdoc.Descendants(xmlns + "entry")
select new Post
{
Id = int.Parse(x.Descendants(ads + "Id").First().Value),
Title = x.Descendants(ads + "Title").First().Value,
Author = x.Descendants(ads + "Author").First().Value
};
Posts.ItemsSource = posts;
完成的代码如下所示:
Tags:Silverlight 系列 数据
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接