2009-08-20 34 views
4

我有一个有趣的问题:我可以从我的WCF服务中将结果作为DataTable返回到我的Silverlight代码。问题是,Silverlight不支持DataTable对象。我一直在琢磨着我能做什么,而我能想到的最好的东西是把它作为一个List来传递。在Silverlight中使用DataTable对象

太棒了,对吗?不。现在我遇到了和以前一样的问题;没有回报。代码表明它工作正常,但它根本不会返回任何东西。

有关如何解决此问题的任何建议?我需要能够获取数据库结果,并在Silverlight中使用它。目前,我可以使用Silverlight不支持的对象类型来获取数据,但是这样做会导致失败。

回答

3

因为DataTable不能与其他不符合.NET的语言交互操作,所以不推荐使用DataTable与Web Service。

您应该重新考虑Web服务的返回类型。

看看带WCF的DataContract是否可以解决您的问题。

0

Silverlight像实体一样。找出实体。做另一个叫做第一个的wcf服务。在第二个wcf服务中做你的魔力 - 将数据表转换为实体。然后从Silverlight调用第二个wcf服务...

0

您可以在WCF服务上发布更多信息吗?

您是否定义了数据合同?

[DataContract] 
public class Vendor 
{ 
    [DataMember] 
    public int VendorID; 

    [DataMember] 
    public string AccountNumber; 

    [DataMember] 
    public string Name; 

    [DataMember] 
    public int CreditRate; 

    [DataMember] 
    public int PreferredVendorStatus; 

    [DataMember] 
    public int ActiveFlag; 

    [DataMember] 
    public string PurchasingWebServiceUrl; 

    [DataMember] 
    public DateTime ModifiedDate; 
} 

数据协定是必要的服务,您的序列化对象和客户知道如何重组对象