【问题标题】:WCF return type is objectWCF 返回类型是对象
【发布时间】:2012-08-31 13:49:02
【问题描述】:

我有一个 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&lt;AmenitySummary&gt;?我错过了什么?

不仅如此,当我尝试在客户端使用 AmenitySummary 时,由于无法识别,我无法做到这一点。我认为这是相关的。

谢谢,

S

【问题讨论】:

    标签: wcf entity-framework-4


    【解决方案1】:

    IQueryable 在没有特定引用的情况下是不可序列化的(请参阅 svcutil.exe /references)。

    否则,使用 WCF 数据服务 (OData) 或从服务返回 AmenitySummary 数组。在后一种情况下,您可以将数组转换为 IQuaryable 实例。

    【讨论】:

      【解决方案2】:

      我认为是因为IQueryable。你可能也需要暴露它。

      看到这个帖子: Expose IQueryable Over WCF Service

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-10-30
        • 2012-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-06
        • 1970-01-01
        相关资源
        最近更新 更多