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