gpt4 book ai didi

nancy - 是否可以将简单的请求数据绑定(bind)到 NancyFX 中的方法调用?

转载 作者:行者123 更新时间:2023-12-01 08:18:26 28 4
gpt4 key购买 nike

我正在向 Nancy 模块发送一些简单的用户详细信息。我正在利用 Nancy 的模型绑定(bind)功能从请求中获取用户详细信息并将它们传递给我的 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) 类来收集请求负载。

是否可以完全避免这个中间类?不是将类绑定(bind)到有效负载,而是可以绑定(bind)方法参数吗?

这将给出看起来像这样的代码:

南希模块

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
}

最佳答案

您始终可以创建一些扩展方法或自定义绑定(bind)器,但是您将服务的内部实现与负载参数的确切命名相结合,这并不好,因为稍后当您的服务发生变化时,您需要改变有效载荷或跳槽箍。 DTO 没有任何问题,创建它不需要任何成本。

关于nancy - 是否可以将简单的请求数据绑定(bind)到 NancyFX 中的方法调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15786009/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com