gpt4 book ai didi

routing - 将查询字符串中的参数值映射到DTO属性

转载 作者:行者123 更新时间:2023-12-04 13:51:49 25 4
gpt4 key购买 nike

我试图找到一种方法来获取此查询字符串中的值到我的DTO对象。

example.org?code=abc

我必须将代码值映射到AuthorizationCode属性(参数名称也不匹配)。我试过这样的路由,但不起作用。
[Route("?code={AuthorizationCode}", "GET")]
public class Registration
{
public string AuthorizationCode { get; set; }
}

由于这是一个回调URL,因此我没有机会对其进行更改。我该怎么做?

最佳答案

阅读此更早的answer on ServiceStack's Routes。路由仅应包含/path/info,而不应包含可自动填充所有请求DTO的queryString。

如果您的DTO中只有一个code属性,例如:

[Route("/registration", "GET")]
public class Registration
{
public string Code { get; set; }
}

您已经可以使用 /registration?code=abc填充它。

否则,如果您要坚持对queryString和DTO使用不同的名称,则可以尝试通过将DTO注释为 [DataContract]来创建别名:
[Route("/registration", "GET")]
[DataContract]
public class Registration
{
[DataMember(Name="code")]
public string AuthorizationCode { get; set; }
}

无论哪种方式,您始终可以直接在服务或过滤器中访问QueryString:
public MyService : Service 
{
public object Post(Registration request)
{
var code = base.Request.QueryString["code"];
}
}

关于routing - 将查询字符串中的参数值映射到DTO属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15462760/

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