2010-08-23 19 views
7

Bir web hizmetim varsa (.asmx) ve o web hizmetinden döndürdüğüm tüm nesneleri serileştirmek için Json.NET kullanmasını istiyorum. bunu yapmak için? Başka bir deyişleJson.NET'in varsayılan Json seri hale getiricisini nasıl yapabilirim

, bir sınıf böyle vardır:

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

     public string LastName {get; set;} 

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

Ve benim web hizmeti

, bu var:

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

     return p; 
    } 

jQuery kullanarak Ben json için dönüş türü ayarlarsanız, Nesnemi json'a serileştiriyor.

Json.net'i web.config veya benzeri bir ayar aracılığıyla kullanmak mümkün mü?

cevap

1

Sadece JSON - no. (Bu oldukça büyük) Sadece

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

kullanarak bütün IHttpHandlerFactory yeniden tanımlamak edebiliyoruz Ama bu yansıma kullanarak varsayılan uygulanmasına geri düşmek veya System.Web.Script.Services ad alanının sizin analog uygulamak ya da olması gerekir anlamına gelecektir.

Aslında diğer amaçlarla (merkezi hata işleme) yansıma geri dönüşleriyle yaptım, bu yüzden mümkün olmalı, ancak kesinlik gerektirir ve .NET sürümleri arasında çok kırılgan olur.

Klasik ASP.NET veya MVC kullanıyor musunuz? MVC kullanıyorsanız, sadece bir denetleyici kullanın, bu çok daha kolay.

+0

Yardım için teşekkürler. Farklı bir rotaya gittik. Bir nesneyi döndürmemiz gerektiğinde, bir "Slim" sınıfı oluşturacağız ve serileştirmek için JsonConvert.SerializeObject'i kullanacağız. Böylelikle, web servisi aracılığıyla geri gönderilen bilgi üzerinde daha fazla kontrol sahibi olduk. –

İlgili konular