0

私は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、クライアント側で使おうとすると認識されないのでできません。これはつながっていると思います。

ありがとう、

S

4

2 に答える 2

1

IQueryable は、特定の参照がないとシリアル化できません (svcutil.exe /references を参照)。

それ以外の場合は、WCF DataService (OData) を使用するか、サービスから AmenitySummary の配列を返します。後者の場合、配列を IQuaryable インスタンスに変換できます。

于 2012-08-31T13:56:21.147 に答える
1

のせいだと思いますIQueryable。おそらくそれも公開する必要があります。

この投稿を参照してください: WCF サービスで IQueryableを公開する

于 2012-08-31T13:53:56.580 に答える