C# 枚举集合出现WCF错误
这个程序可以很好地处理简单枚举。 但是,当我想要一个enum集合时,启动它时会出现WCF错误C# 枚举集合出现WCF错误,c#,wcf,collections,enums,C#,Wcf,Collections,Enums,这个程序可以很好地处理简单枚举。 但是,当我想要一个enum集合时,启动它时会出现WCF错误 [OperationContract] [FaultContract(typeof(ErrorData))] [WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTem
[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,
}
[运营合同]
[FaultContract(类型(错误数据))]
[WebInvoke(Method=“GET”,
RequestFormat=WebMessageFormat.Json,
ResponseFormat=WebMessageFormat.Json,
UriTemplate=“TestEnum?productRetrieveOptions={productRetrieveOptions}”)]
字符串TestEnum(ICollection productRetrieveOptions);
公共字符串TestEnum(ICollection productRetrieveOptions)
{
返回string.Format(“确定({0})”,productRetrieveOptions);
}
[数据合同]
公共枚举ProductRetrieveOption:int
{
[System.Runtime.Serialization.EnumMemberAttribute()]
//[委员]
股票=0,
[System.Runtime.Serialization.EnumMemberAttribute()]
//[委员]
RightAssociated=1,
[System.Runtime.Serialization.EnumMemberAttribute()]
//[委员]
有效碘酸盐=2,
[System.Runtime.Serialization.EnumMemberAttribute()]
//[委员]
全关税=3,
}
错误是:
操作“TestEnum”协定Isale具有名为“productRetrieveOptions”类型“System.Collections.Generic.ICollection1[DTO.ProductRetrieveOption]”的请求变量,但类型“System.Collections.Generic.ICollection
1[DTO.ProductRetrieveOption]”不能与“QueryStringConverter”转换。UriTemplate查询值的变量必须具有可由“QueryStringConverter”转换的类型
我尝试了IList、[]、IEnumarable和ICollection,但总是遇到同样的错误
感谢您的帮助您需要实现自己版本的
QueryStringConverter
。请参见您需要实现自己版本的QueryStringConverter
。最后,这是一个非常基本的错误
[OperationContract]
[FaultContract(typeof(ErrorData))]
[WebInvoke(Method = "POST",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "TestEnum")]
string TestEnum(ICollection<DTO.ProductRetrieveOption> productRetrieveOptions);
[运营合同]
[FaultContract(类型(错误数据))]
[WebInvoke(Method=“POST”,
RequestFormat=WebMessageFormat.Json,
ResponseFormat=WebMessageFormat.Json,
UriTemplate=“TestEnum”)]
字符串TestEnum(ICollection productRetrieveOptions);
最后,这是一个非常基本的错误
[OperationContract]
[FaultContract(typeof(ErrorData))]
[WebInvoke(Method = "POST",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "TestEnum")]
string TestEnum(ICollection<DTO.ProductRetrieveOption> productRetrieveOptions);
[运营合同]
[FaultContract(类型(错误数据))]
[WebInvoke(Method=“POST”,
RequestFormat=WebMessageFormat.Json,
ResponseFormat=WebMessageFormat.Json,
UriTemplate=“TestEnum”)]
字符串TestEnum(ICollection productRetrieveOptions);
谢谢您的回答。事实上,我们可以使用复杂类型,但我们必须在UriTemplate中使用POST和nothing。谢谢您的回答。事实上,我们可以使用复杂类型,但我们必须在模板中使用POST和nothing