2012-10-23 68 views
1

ASP.NET默认json串行器速度慢,我需要很多性能,所以我想使用ServiceStack.Text Serializer,有没有一种方法可以使用该序列化器,而不是默认的?更改默认JSON串行器

如果我发送JSON请求到我的ASMX文件,并返回一个对象,它将使用微软的慢速实现序列化它。

我想我总是可以返回一个字符串,并手动序列化,但我只是想知道它是否可能。

+0

请先看看这个:http://encosia.com/asp-net-web-services-mistake-manual-json-serialization/ –

+0

问题是,当你返回一个对象时,微软的串行器很慢。非常慢。 – gosukiwi

+0

如果您查看Leniel Macaferi提供的文章中的Web方法实现,您会发现一种方法是返回字符串,并且您可以绝对使用其他序列化程序。 – Tariqulazam

回答

3

退房此链接:http://msdn.microsoft.com/library/bb763183%28v=vs.100%29.aspx

基本上你需要把你的自定义转换器配置标记上的web.config:

<configuration> 
    <system.web.extensions> 
    <scripting> 
     <webServices> 
     <jsonSerialization maxJsonLength="50"> 
      <converters> 
      <add name="MyCustomConverter" 
       type="MyCompany.ConvertersNameSpace.MyTypeConverter"/> 
      </converters> 
     </jsonSerialization> 
     </webServices> 
    </scripting> 
    </system.web.extensions> 
</configuration> 

由于JavascriptSerializer需要通知哪些类的支持,我认为ASP .net会假设你的序列化器,而不是默认的序列化器。

+0

您的转换器必须来自['JavaScriptConverter'](http://msdn.microsoft.com/zh-cn/library/system.web.script.serialization.javascriptconverter)。 –