このプログラムは簡単な列挙型でうまく動作します。 しかし、列挙型のコレクションが必要なときは、起動時に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