該程序工作正常,簡單的枚舉。 但是,當我想要一個枚舉集合時,我啓動它時會出現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得到了同樣的錯誤。
感謝您的幫助
謝謝你的答案。事實上,我們可以使用複雜的類型,但是我們必須使用POST,而不是uritemplate – JEB