2016-04-13 71 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);