3

簡単なユーザーの詳細を Nancy モジュールに送信しています。Nancy のモデル バインディング機能を利用して、リクエストからユーザーの詳細を取得しUserService.Add(...)、次のようにメソッドに渡します。

ナンシー・モジュール

Post["/add"] = parameters =>
{
    var user = this.Bind<UserDetails>();
    UserService.Add(user);
    return HttpStatusCode.OK;
};

ユーザー詳細クラス

public class UserDetails
{
    public string UserName { get; set; }
    public string Password { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }
}

ユーザーサービス

public static void Add(UserDetails user)
{
    //Add the user     
}

これは機能し、Nancy モジュールの簡潔な構文になります。ただし、これは、リクエスト ペイロードを取得するためだけにデータ転送 (DTO) クラスを作成する必要があることを意味します。

この中間クラスを完全に回避することは可能ですか? クラスをペイロードにバインドする代わりに、メソッド パラメータをバインドすることは可能でしょうか?

これにより、次のようなコードが得られます。

ナンシー・モジュール

Post["/add"] = parameters =>
{
    this.BindAndCall<UserService>("Add");
    return HttpStatusCode.OK;
};

ユーザーサービス

public static void Add(string  firstName, string  lastName, string email, string userName, string password)
{
    //Add the user     
}
4

2 に答える 2