Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#客户端-路由选择器_C#_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">servicestack - Fatal编程技术网 servicestack,C#,servicestack" /> servicestack,C#,servicestack" />

C#客户端-路由选择器

C#客户端-路由选择器,c#,servicestack,C#,servicestack,我有以下的DTO [Route("/Locations/{Code}/ToLocal/{Datetime}")] [Route("/Locations/{Code}/ToUTC/{Datetime}")] public class TimeConvertToLocal : IReturn<TimeConvertResponse> { ..... 它可以工作,但总是选择ToUTC路线。我应该如何告诉客户选择ToLocal路线?或者我应该更改我的实现并将其拆分为两个dto?您可以在路由

我有以下的DTO

[Route("/Locations/{Code}/ToLocal/{Datetime}")]
[Route("/Locations/{Code}/ToUTC/{Datetime}")]
public class TimeConvertToLocal : IReturn<TimeConvertResponse>
{
.....

它可以工作,但总是选择
ToUTC
路线。我应该如何告诉客户选择
ToLocal
路线?或者我应该更改我的实现并将其拆分为两个
dto

您可以在路由中添加另一个变量。类似于路由(“/Locations/{Code}/{Format}/{Datetime}”)并让客户机指定

既然您命名了TimeEnvivToLoCall类,您也可以考虑创建一个新的请求DTO TimeVeltTutc.


最后,只需向客户提供两个答案,让他们选择他们想要的答案。例如:路由(“/Locations/{Code}/{Datetime}”),您的响应将包含本地时间和UTC时间

您的客户应始终将日期作为其本地时间发送。我假设您有一个基于客户端区域设置的查找。如果不存储客户机的区域设置,则需要在客户机的区域设置中发送另一个方法。有了区域设置,你就可以执行你想要的计算了。谢谢你,但不是我的问题。我只想知道如何通知ServiceStack C#客户使用“ToLocal”或“ToUTC”路线。谢谢你的回答,Mike-事实上,我们完成了你的第一个解决方案,但由于第二个解决方案更加优雅,因此将改为第二个解决方案。
var result = client.Get(new TimeConvert()
{                                    
    Code = 'ABC',
    Datetime = DateTime.Now.ToString("yyyyMMddTHHmmss")
});