簡単なユーザーの詳細を 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
}