Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.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# 如何在运行时确定ServiceStack请求中的接受类型_C#_Json_Xml_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">servicestack - Fatal编程技术网 servicestack,C#,Json,Xml,servicestack" /> servicestack,C#,Json,Xml,servicestack" />

C# 如何在运行时确定ServiceStack请求中的接受类型

C# 如何在运行时确定ServiceStack请求中的接受类型,c#,json,xml,servicestack,C#,Json,Xml,servicestack,我正在使用ServiceStack包装一个只返回xml或json(作为字符串)的组件,我想知道如何在我的服务代码中区分是调用第三方对象的toJson()还是toXml()方法 IRequest对象公开了一个AcceptTypes数组,该数组可能包含“application/json”或“application/xml”或“text/xml”,是否有更好的方法来确保他们请求的格式是什么,并以此作为我的决策基础 谢谢,, 斯蒂芬 ServiceStack计算要返回的最合适的ResponseType,

我正在使用ServiceStack包装一个只返回xml或json(作为字符串)的组件,我想知道如何在我的服务代码中区分是调用第三方对象的toJson()还是toXml()方法

IRequest对象公开了一个AcceptTypes数组,该数组可能包含“application/json”或“application/xml”或“text/xml”,是否有更好的方法来确保他们请求的格式是什么,并以此作为我的决策基础

谢谢,, 斯蒂芬


ServiceStack计算要返回的最合适的ResponseType,并将其填入
IRequest.ResponseContentType

因此,您可以通过以下方法确定:

response.Result = Request.ResponseContentType.MatchesContentType(MimeTypes.Xml)
    ? entity.GetXml()
    : entity.GetJson();
response.Result = Request.ResponseContentType.MatchesContentType(MimeTypes.Xml)
    ? entity.GetXml()
    : entity.GetJson();