キーと値のペアのリストを返すServiceStack (素晴らしい)を使用して、単純な Rest サービスを構築しました。
私のサービスは次のようになります。
public class ServiceListAll : RestServiceBase<ListAllResponse>
{
public override object OnGet(ListAllResponse request)
{
APIClient c = VenueServiceHelper.CheckAndGetClient(request.APIKey, VenueServiceHelper.Methods.ListDestinations);
if (c == null)
{
return null;
}
else
{
if ((RequestContext.AbsoluteUri.Contains("counties")))
{
return General.GetListOfCounties();
}
else if ((RequestContext.AbsoluteUri.Contains("destinations")))
{
return General.GetListOfDestinations();
}
else
{
return null;
}
}
}
}
私の応答は次のようになります。
public class ListAllResponse
{
public string County { get; set; }
public string Destination { get; set; }
public string APIKey { get; set; }
}
残りの URL を次のようにマッピングしました。
.Add<ListAllResponse>("/destinations")
.Add<ListAllResponse>("/counties")
サービスを呼び出すとき
次の例外が発生します (サービスの最初の行のブレークポイントにヒットしません)。
NullReferenceException オブジェクト参照がオブジェクトのインスタンスに設定されていません。ServiceStack.Text.XmlSerializer.SerializeToStream(オブジェクト obj、ストリーム ストリーム) で ServiceStack.Common.Web.HttpResponseFilter.<GetStreamSerializer>b_ 3(IRequestContext r、オブジェクト o、ストリーム s) で ServiceStack.Common.Web.HttpResponseFilter.<> c _DisplayClass1.<GetResponseSerializer>b__0(IRequestContext httpReq、オブジェクト dto、IHttpResponse httpRes) ServiceStack.WebHost.Endpoints.Extensions.HttpResponseExtensions.WriteToResponse(IHttpResponse 応答、オブジェクト結果、ResponseSerializerDelegate defaultAction、IRequestContext serializerCtx、Byte[] bodyPrefix、Byte[] bodySuffix)
呼び出しにパラメーターを含めるかどうかに関係なく、例外がスローされます。また、同じプロジェクト内の同じラインに沿って、正常に動作する他の多くのサービスも作成しました。これが何を意味するかについて、誰かが私を正しい方向に向けることができますか?