我有一个WCF方法:
public IQueryable<AmenitySummary> GetAmenities(string searchTerm)
现在,AmenitySummary
被定义为
[DataContract]
public class AmenitySummary
{
[DataMember]
public int AmenityId { get; set; }
[DataMember]
public string Amenity { get; set; }
[DataMember]
public string LowerCaseAmenity { get; set; }
}
在我的客户端解决方案中,我有一个项目,我称之为此方法。问题是Reference.cs文件中的签名是这个
public object GetAmenities(string searchTerm) {
return base.Channel.GetAmenities(searchTerm);
}
怎么来的?为什么不是返回类型IQueryable<AmenitySummary>
?我错过了什么?
不仅如此,当我尝试在客户端使用AmenitySummary
时,由于无法识别,我无法执行此操作。我认为这是相互关联的。
谢谢,
取值
答案 0 :(得分:1)
我认为这是因为IQueryable
。您可能也需要公开它。
答案 1 :(得分:1)
如果没有特定的引用,IQueryable不可序列化(请参阅svcutil.exe / references)。
否则使用WCF DataService(OData)或从服务返回AmenitySummary数组。在后一种情况下,您可以将数组转换为IQuaryable实例。