.NET WebAPI Serileştirme k_BackingField Sonsuz | tutuappapks.com
Bu iğrenç pisliği alıyorum:
Ne verir? Bunu nasıl güzel yapabilirim? JSON yanıtları ayrıca k_BackingField içerir
Bu bana yardımcı oldu: stackoverflow.com/questions/15388452/... - granadaCoder
Varsayılan olarak ne kullanmanız gerekmiyor [Serializable] ne de [DataContract] Web API ile çalışmak.
Sadece modelinizi olduğu gibi bırakın ve Web API sizin için tüm kamu özelliklerini serileştirir.
Sadece nelerin dahil olduğu hakkında daha fazla kontrol sahibi olmak istiyorsanız, sınıfınızı [DataContract] ve dahil edilecek özellikler [DataMember] (çünkü hem DCS hem de JSON.NET bu öznitelikleri yeniden boyutlandırır).
Eğer bir sebepten ötürü [Serializable] sınıfınızda (yani, bir nedenle bir nedenle, derin kopyalar yaparak bir bellek akışına serileştiriyorsunuz), o zaman arka alan adlarını önlemek için her iki özelliği de birlikte kullanmanız gerekir:
Öyleydi-- sadece [Seri hale getirilebilir] kaldırmak gerekiyordu. Teşekkürler. - Micah
Teşekkürler Filip, önbellek nedeniyle öznitelikleri tutmak zorunda .. BTW, ben senin blogunun hevesli bir hayranıyım .. devam et! - Stephen Patten
haha çok teşekkürler! - Filip W
Bu sadece korkunç. Microsoft neden olmasın? hİÇ serileştirme söz konusu olduğunda doğru bir şey yapmak? - Chris Marisic
Aşağıda kendi cevabımda gösterdiğim gibi daha genel bir çözüm var. - JotaBe
Daha genel bir çözüm var: Json Serializer'ı yok saymak için yapılandırabilirsiniz. [Serializable] özniteliği, böylece sınıflarınızdaki özellikleri değiştirmek zorunda kalmazsınız.
Bu yapılandırma değişikliğini uygulama başlangıcında, yani Global.asax'ta yapmalısınız. Application_Start Etkinlik:
Json serileştirme işleminde, serileştirme tarihleriyle ilgili formatlar ve diğer pek çok şey gibi başka değişiklikler de yapabilirsiniz.
Bu sadece Web API JSON serileştirmesi için geçerli olacaktır. Uygulamadaki diğer serileştirmeler (Web API XML serileştirme, MVC JsonResult ...) bu ayardan etkilenmez.
Bu çözüm bana iki kere yardım etti! Ve aralarında unutmuştum. - John Gietzen
Bu çözümü, heryerde [DataContract] ve [DataMember] özelliklerinin eklenmesinden çok daha iyi seviyorum. Teşekkür ederim!! - Mark Good
Harika, cazibe gibi çalışıyor! - Roemer
Her zaman kullanman gereken bir şey değil, ama bu net bir numara. Modelleri değiştirme lüksüne sahip olmadığınız ya da kod tabanını derinlemesine yeniden düzenleyemediğiniz dağınık durumlarla karşılaşmanıza yardımcı olan bir levye türüdür. - uygar.raf
Web api kullanıyorsanız ve .net çerçevesinin 4. sürümünü hedefliyorsanız, bunun çalışması için Netwonsoft.Json paketini güncellemeniz gerekir. Update-Package Newtonsoft.Json. - pblack
Sınıfınızı işaretlemek için Serializable yerine DataContract kullanmayı deneyin. Neden hakkında daha fazla bilgi için şuna bakın otomatik özellikleri serileştirme konusunda iyi blog yazısı.