SORU
8 EYLÜL 2012, CUMARTESİ


.NET WebAPİ k_BackingField Pislik Serileştirme

Şu: ben seri hale getirmek

[Serializable]
public class Error
{

    public string Status { get; set; }
    public string Message { get; set; }
    public string ErrorReferenceCode { get; set; }
    public List<FriendlyError> Errors { get; set; }
}

Bu iğrenç pisliği alıyorum:

<ErrorRootOfstring xmlns:i="http://www.w3.org/2001/XMLSchema-instance"   xmlns="http://schemas.datacontract.org/2004/07/Printmee.Api">
<_x003C_Errors_x003E_k__BackingField>
An exception has occurred. Please contact printmee support
</_x003C_Errors_x003E_k__BackingField>
<_x003C_LookupCode_x003E_k__BackingField>988232ec-6bc9-48f3-8116-7ff7c71302dd</_x003C_LookupCode_x003E_k__BackingField>
</ErrorRootOfstring>

Ne veriyor? Nasıl bu kadar güzel yapabilir miyim? JSON yanıtları da k_BackingField içerir

CEVAP
10 EYLÜL 2012, PAZARTESİ


Varsayılan olarak ne [Serializable] ne [DataContract] Web API ile çalışmak için kullanmaya gerek yok.

Sadece olduğu gibi modeliniz bırakın, ve Web API için tüm ortak özelliklerini seri hale getirmek.

Sadece olmasını istiyorsanız daha fazla denetim hakkında ne dahil, daha sonra süslemek sınıf [DataContract] ve özellikler için dahil [DataMember] (çünkü hem DC ve JSON.NET respsect bu öznitelikleri).

Eğer bir sebepten, gerek [Serializable] sınıf (yani seri hale getirilirken bir hafıza stream nedense, derin kopyalarını vs.), sonra da sana sahip olduğu için kullanımı her iki öznitelikleri birlikte önlemek desteğini alan adları:

[Serializable]
[DataContract]
public class Error
{
    [DataMember]
    public string Status { get; set; }
    [DataMember]
    public string Message { get; set; }
    [DataMember]
    public string ErrorReferenceCode { get; set; }
    [DataMember]
    public List<FriendlyError> Errors { get; set; }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • NYCarspotter

    NYCarspotter

    26 EYLÜL 2011
  • The Exploiteers

    The Exploite

    4 Ocak 2011
  • TWiT Netcast Network

    TWiT Netcast

    27 EKİM 2005