簡體   English   中英

如何使Json.NET成為默認的Json序列化程序

[英]How Do I Make Json.NET the Default Json Serializer

如果我有一個Web服務(.asmx)並且我希望它使用Json.NET來序列化我從該Web服務返回的所有對象,有沒有辦法做到這一點?

換句話說,我有一個這樣的類:

    [JsonObject(MemberSerialization.OptOut)]
    public partial class Person
    {
        public string FirstName {get; set;}

        public string LastName {get; set;}

        [JsonIgnore]    
        public string Password {get; set;}    
    }

在我的網絡服務中,我有這個:

    [WebMethod]
    public Person GetBlahPerson()
    {
        Person p = new Person();
        p.FirstName = "bob";
        p.LastName = "smith";
        p.Password = "don't tell";

        return p;
    }

如果使用jQuery我將返回類型設置為json,它將我的對象序列化為json。

是否可以通過web.config中的設置或類似的東西使它使用Json.net?

只是JSON - 沒有。 您只能使用重新定義整個IHttpHandlerFactory

<add verb="*" path="*.asmx" type="YourScriptHandlerFactory" validate="false"/>

但這意味着您需要使用反射回退到默認實現,或者實現System.Web.Script.Services命名空間的模擬(非常大)。

我實際上是為了其他目的而使用反射回退(集中式錯誤處理),因此它應該是可能的,但它需要精確度並且在.NET版本之間會非常脆弱。

你使用經典的ASP.NET或MVC嗎? 如果你使用MVC,只需使用一個控制器,它就容易多了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM