枚举集合的WCF错误

时间:2016-04-13 13:04:47

标签: c# wcf collections enums

这个程序适用于简单的枚举。 但是当我想要一个enum集合时,我启动时会出现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,
} 

错误是:

Operation&#39; TestEnum&#39;合同Isale有一个名为&#39; productRetrieveOptions&#39;的请求变量。类型&#39; System.Collections.Generic.ICollection 1 [DTO.ProductRetrieveOption] ', but the type' System.Collections.Generic.ICollection 1 [DTO.ProductRetrieveOption]&#39;不能转换为&#39; QueryStringConverter&#39;。 UriTemplate查询值的变量必须具有可由&#39; QueryStringConverter转换的类型。

我尝试使用IList,[],IEnumarable和ICollection,并且Ialways也遇到了同样的错误。

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

最后这是一个非常基本的错误

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