2016-04-13 11 views
1

このプログラムは簡単な列挙型でうまく動作します。 しかし、列挙型のコレクションが必要なときは、起動時にWCFエラーが発生します。列挙型のWCFエラー

[OperationContract] 
    [FaultContract(typeof(ErrorData))] 
    [WebInvoke(Method = "GET", 
     RequestFormat = WebMessageFormat.Json, 
     ResponseFormat = WebMessageFormat.Json, 
     UriTemplate = "TestEnum?productRetrieveOptions={productRetrieveOptions}")] 
    string TestEnum(ICollection<DTO.ProductRetrieveOption> productRetrieveOptions); 



    public string TestEnum(ICollection<DTO.ProductRetrieveOption> productRetrieveOptions) 
    { 
     return string.Format("OK ({0})", productRetrieveOptions); 
    } 



[DataContract] 
public enum ProductRetrieveOption : int 
{ 
    [System.Runtime.Serialization.EnumMemberAttribute()] 
    //[EnumMember] 
    Stock = 0, 

    [System.Runtime.Serialization.EnumMemberAttribute()] 
    //[EnumMember] 
    RightAssociated = 1, 

    [System.Runtime.Serialization.EnumMemberAttribute()] 
    //[EnumMember] 
    ValidityDate = 2, 

    [System.Runtime.Serialization.EnumMemberAttribute()] 
    //[EnumMember] 
    FullTariff = 3, 
} 

エラーは次のとおりです。

操作 'TestEnum' 契約Isaleは 'productRetrieveOptions' タイプ 'System.Collections.Generic.ICollection 1 [DTO.ProductRetrieveOption] ', but the type' System.Collections.Generic.ICollection 1 [DTO.ProductRetrieveOption]' という名前のリクエスト変数を持っているとコンバーチブルではありません'QueryStringConverter'。 UriTemplateクエリ値の変数には、 'QueryStringConverter'によって変換できる型が必要です。

私はIList、[]、IEnumarable、ICollectionを試しましたが、Ialwaysは同じ種類のエラーが発生しました。

おかげであなたの助け

答えて

0

Finalyそれは非常に基本的なエラーだった

[OperationContract] 
    [FaultContract(typeof(ErrorData))] 
    [WebInvoke(Method = "POST", 
     RequestFormat = WebMessageFormat.Json, 
     ResponseFormat = WebMessageFormat.Json, 
     UriTemplate = "TestEnum")] 
    string TestEnum(ICollection<DTO.ProductRetrieveOption> productRetrieveOptions);