0
이전에 Response.AsJson (Foo.bar())을 사용했을 때 API 끝점과 내부 논리 비동기 중 하나를 만들었습니다. JSON 표현 일반적으로,하지만 지금이 그것을 추가 참조 :Nancy.Response.AsJson에서 Task json 속성을 제거하는 방법
{
"result": [
{
"id": "59d680cc734d1d08b4e6c89c",
"properties": {
"name": "value"
}
}
],
"id": 3,
"exception": null,
"status": 5,
"isCanceled": false,
"isCompleted": true,
"isCompletedSuccessfully": true,
"creationOptions": 0,
"asyncState": null,
"isFaulted": false
}
하지만 그것은 다음과 같이되고 싶어 : 나는 내 객체를 포장했기 때문에
"id": "59d680cc734d1d08b4e6c89c",
"properties": {
"name": "value"
}
내가 알고있는 것처럼, 그건 작업,하지만 난 알아낼 수 없다, 어떻게 Response.AsJson을 사용하여 낸시 프레임 워크와 함께, 속성이 제외되도록 ded. 나는 분명히 반환 된 객체의 Response.AsJson을 생략 할 수 있지만 예를 들어 웹 브라우저를 통해 요청할 경우 응답은 더 이상 Json이 아닙니다. 라우팅 API에 대한 또 다른 예를 들어
이
이NancyModule는 :
public ItemCatalogModule(IItemCatalog itemCatalog) : base("/itemCatalog")
{
Get("/fetch/{id}", async parameters =>
{
var id = (string) parameters.id;
var response = await Response.AsJson(itemCatalog.GetItem(id));
return response;
});
}
인터페이스는 같은 ItemCatalog의 보이는 방법 :
public interface IItemCatalog
{
Task<Item> GetItem(string id);
}
감사합니다 , 그것은 일했다! 그러나 구문을 기다리는 위치가 다른 결과를주는 이유를 자세히 설명해 주시겠습니까? 이것은 C# 비동기 규칙 또는 nancyfx 프레임 워크에 특정한 것입니까? –
'await'은 결과를 기다린 다음 메서드에 의해 반환되는 Task를 반환하는 대신 Json으로 리턴합니다. –