2

IReturnが実装されている場合と実装されていない場合で、メタの表示が異なるのは興味深いことです。IReturnが実装されている場合、メタデータ出力をトリミングするためにDTOをどのように構成できるのでしょうか。

ここに画像の説明を入力してください

コード

namespace Backbone.Todos {
//Without IReturn --------------------------
[Route("/todos","POST")] //add
[Route("/todos/{id}","POST")] //edit
public class Todo {
    public long Id { get; set; }
    public string Content { get; set; }
    public int Order { get; set; }
    public bool Done { get; set; }
}
//-----------------------------------------
[Route("/todos","GET")] //list
public class TodoList {
} 
//-----------------------------------------
[Route("/todos/{id}","DELETE")]//delete
public class DeleteTodo {
    public int Id { get; set; }
}
//-----------------------------------------
[Route("/todos/reset")] //reset
public class ResetTodos {
}

.....。

これで同じですが、IReturn <>を使用すると、メタデータが奇妙に見えます。写真のList`1とdoubleTodosに注目してください。

namespace Backbone.Todos {
//Implementing IReturn---------------------
[Route("/todos","POST")] //add
[Route("/todos/{id}","POST")] //edit
public class Todo : IReturn<Todo> {
    public long Id { get; set; }
    public string Content { get; set; }
    public int Order { get; set; }
    public bool Done { get; set; }
}
//-----------------------------------------
[Route("/todos","GET")] //list
public class TodoList : IReturn<List<Todo>>  {
} 
//-----------------------------------------
[Route("/todos/{id}","DELETE")]//delete
public class DeleteTodo : IReturnVoid {
    public int Id { get; set; }
}
//-----------------------------------------
[Route("/todos/reset")] //reset
public class ResetTodos : IReturnVoid{
}
//-----------------------------------------
......
4

1 に答える 1

3

新しいAPIで動作するメタデータページは、ServiceStackのHEADバージョンですでに修正されています。今すぐリポジトリをフォークできます。そうしないと、週末にServiceStackの新しいリリースがデプロイされます。

于 2012-10-05T06:51:53.640 に答える