Эта программа отлично работает с простым перечислением. Но когда я хочу, чтобы коллекция enum имела ошибку WCF, когда я запускаю ее.Ошибка WCF с перечислением enum
[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' Исаль имеет переменную запроса с именем '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