[英]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.