3

私は非常に単純な Request DTO を持っていますList<int>。配列も試しましたが、同じエラーが発生します。

エラーコード:

'((ServiceStack.ServiceClient.Web.WebServiceException)($exception)).ErrorCode' threw an exception of type 'System.IndexOutOfRangeException'

エラーメッセージ:

'((ServiceStack.ServiceClient.Web.WebServiceException)($exception)).ErrorMessage' threw an exception of type 'System.IndexOutOfRangeException'

応答本文:

 "ResponseStatus":{
 "ErrorCode":"SerializationException",
 "Message":"KeyValueDataContractDeserializer: Error converting to type: Input string was not in a correct format.",
 "StackTrace":"   at ServiceStack.ServiceModel.Serialization.StringMapTypeDeserializer.PopulateFromMap(Object instance, IDictionary`2 keyValuePairs) in C:\\src\\ServiceStack\\src\\ServiceStack.Common\\ServiceModel\\Serialization\\StringMapTypeDeserializer.cs:line 108
   at ServiceStack.ServiceHost.RestPath.CreateRequest(String pathInfo, Dictionary`2 queryStringAndFormData, Object fromInstance) in C:\\src\\ServiceStack\\src\\ServiceStack\\ServiceHost\\RestPath.cs:line 331
   at ServiceStack.WebHost.Endpoints.RestHandler.GetRequest(IHttpRequest httpReq, IRestPath restPath) in C:\\src\\ServiceStack\\src\\ServiceStack\\WebHost.Endpoints\\RestHandler.cs:line 106
   at ServiceStack.WebHost.Endpoints.RestHandler.ProcessRequest(IHttpRequest httpReq, IHttpResponse httpRes, String operationName) in C:\\src\\ServiceStack\\src\\ServiceStack\\WebHost.Endpoints\\RestHandler.cs:line 62"
}

私はこれをどうするかわかりません。クラッシュの原因となる int の単純なリストです。プロパティを空のままにして、DTO で他の文字列または int を使用すると、問題なく動作します。ServiceStack がこれを処理できるはずであることはわかっています。私は ServiceStack の v 3.9 です。

(信じられないほど短い)コードは次のとおりです。

//DTO
Route("/employee")]
public class EmployeeSearch: IReturn<List<Employee>>
{
    public string FirstNameEquals { get; set; }
    public string LastNameEquals { get; set; }

    ...

    public int[] InDepartment { get; set; }
}

...

//Request
//SearchCriteria is of the above type
result.Employees = _client.Get(result.SearchCriteria);
4

1 に答える 1

4

この問題は、この問題とともに、3.9.12 から 3.9.25 にアップグレードすることで解決されました。

于 2012-11-06T01:55:45.577 に答える