C#学习教程:ServiceStack.Net的多个可选参数分享


ServiceStack.Net的多个可选参数

我正在尝试使用ServiceStack.Net实现具有多个可选参数的服务

目前我的路线看起来像这样

Routes.Add("/save/{Year}/{Week}"); 

我想像这样支持uris:

/保存/ 2010/12 /星期一/ 4 /日/ 6 /日/ 7

即星期一= 4,星期二= 6,星期三= 7

但是我希望能够忽略几天,即调用服务的人可以决定是否要保存每天的每个值…

即像这样缺少参数值

?星期一= 4&周三= 7&周五= 6

当然,一种解决方案是使用以下路由,当我不想保存值时只传递0。

 Routes.Add("/save/{Year}/{Week}/{Monday}/{Tuesday}}/{Weds}/{Thurs}/{Fri}/{Sat}/{Sun}"); 

但是…..有没有更好的方法来实现这个function?

当您的Route需求开始变得过于复杂时,最终只需添加一个通配符路径就可以了,这样您就可以自己解析其余的查询字符串。 即在这种情况下,由于查询字符串的第一部分保持不变,您可以添加通配符映射来存储查询字符串的可变部分,即:

 Routes.Add("/save/{Year}/{Week}/{DaysString*}"); 

ServiceStack仍将使用YearWeek字段(以及在查询字符串中传递的任何字段)填充部分DTO。 url的剩余变量部分存储在DaysString中 ,然后您可以自由地手动解析。 所以上面的映射将能够匹配url,如:

/保存/ 2010/12 /星期一/ 4 /日/ 6?周三= 7

并在Request DTO中填充以下变量:

上述就是C#学习教程:ServiceStack.Net的多个可选参数分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/960008.html

发表评论

邮箱地址不会被公开。 必填项已用*标注