我有一个有趣的问题:我可以将结果从我的WCF服务返回到我的Silverlight代码作为DataTable。问题是,Silverlight不支持DataTable对象。我一直在探索自己能做的事情,而我能想到的最好的就是将它作为一个列表传回来。
很好,对吗?不。现在我遇到了和以前一样的问题;什么都没有回来。代码显示它正常工作,但它根本不返回任何内容。
有关如何解决此问题的任何建议?我需要能够获取数据库结果,并在Silverlight中使用它。目前,我可以使用Silverlight不支持的对象类型获取数据,但这样做会使目的失败。
答案 0 :(得分:3)
建议不要在Web服务中使用DataTable,因为DataTable不能与其他不符合.NET的语言互操作。
您应该重新考虑网络服务的返回类型。
查看带有WCF的DataContract是否可以解决您的问题。
答案 1 :(得分:0)
像Silverlight一样的实体。弄清楚实体。制作另一个调用第一个的wcf服务。在第二个wcf服务中做你的魔法 - 将数据表转换为实体。然后从你的银光调用第二个wcf服务......
答案 2 :(得分: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;
}
数据合同是服务序列化对象和客户端知道如何重新组合对象所必需的