Jak mam oznaczyć właściwości, aby nie były serializowane, jeśli mają wartości domyślne? Na przykład, jeśli mam wartość boolowską, należy ją serializować, jeśli jest ustawiona tylko na true, to samo z wartością zerową, jeśli są one zerowe, nie chcę włączać ich do mojego pliku do serializacji.Jak uniknąć wartości domyślnych dla serializacji?
Odpowiedz
Ok znalazłem to ja. Jest to [DefaultValue(false)]
. Jeśli zaznaczę właściwość z tą wartością, to zostanie ona przekształcona do postaci szeregowej, tylko jeśli jest inna niż wartość w().
Dzięki za rozwiązanie! Jakikolwiek pomysł, jak uniknąć tego, że muszę ustawić domyślną wartość dwukrotnie? '[DefaultValue (" Status ")] public string statusTag =" Status ";' – pfuhlert
Istnieje coś takiego jak określona właściwość. Nie mogę znaleźć na nim dokumentacji msdn, ale pomocna powinna być this article. Zasadniczo trzeba napisać coś takiego:
//this property would not be serialized if it contains String.Empty value
public string PropertyName { get; set; }
[XmlIgnore]
public bool PropertyNameSpecified
{
get { return PropertyName != String.Empty; }
}
get {return PropertyName! = String.Empty; } co to jest? porównasz bool z ciągiem znaków, a gdy dodaję xmlIgnore, nigdy nie pojawi się on w serializowanym pliku, nawet jeśli ta właściwość nie jest pusta lub jest prawdziwa w przypadku bool. – kosnkov
Edytowałem swoją odpowiedź. Mam nadzieję, że daje to właściwe zrozumienie tego, co się tam dzieje. –
- 1. Pełna lista wartości domyślnych dla opcji JSHint?
- 2. ustawiania wartości domyślnych (cesja warunkowa)
- 3. zresetować formularz do wartości domyślnych
- 4. GetPrivateProfileInt- odczyt tylko wartości domyślnych
- 5. Przechowywanie wartości domyślnych dla BooleanField() i IntegerField() w Django REST
- 6. Ustawianie domyślnych wartości dla niestandardowych właściwości Maven 2
- 7. Odpowiedni sposób ustawiania wartości domyślnych dla ViewModel w MVC4?
- 8. Routing routingu: Podawanie wartości domyślnych dla pomocników ścieżek
- 9. Nie można użyć tablicy jako wartości domyślnych dla Ruby Hash?
- 10. Jak uniknąć zduplikowanych wartości dla INSERT w SQL?
- 11. wstawić wiele rzędów wartości domyślnych do tabeli
- 12. Zmiana domyślnych układów domyślnych
- 13. Udostępnianie serializacji wartości niestandardowych dla wyliczeń za pomocą JAXB
- 14. Przeciążenie metody lub użycie wartości domyślnych? C++
- 15. XML Serializacja wartości domyślnych opcjonalnych atrybutów
- 16. Preferowany sposób ustawiania domyślnych wartości właściwości zerowalnych?
- 17. Wartości funkcji R bez wartości domyślnych, które są ignorowane
- 18. Jak zlokalizować po serializacji JSON?
- 19. Unikanie pułapek z przypisywaniem wartości Falsy w domyślnych ustawieniach?
- 20. Wartości "inteligentnych domyślnych" SSDT według typu
- 21. Jeszcze bardziej zwięzły sposób ustawiania wartości domyślnych?
- 22. Uzyskiwanie wartości domyślnych z Backbone.Model w metodzie?
- 23. Ustawianie domyślnych wartości całkowitych w activerecord
- 24. Jak uwzględnić właściwości null podczas serializacji xml
- 25. Jak ustawić priorytet dla domyślnych metryk odstępów w formacie wizualnym?
- 26. Jak zresetować wszystkie argumenty options() do ich wartości domyślnych?
- 27. JSON serializacji opcjonalnych wartości z FsPickler
- 28. serializacji XML - XmlCDataSection jak Serialization.XmlText
- 29. Byte dla serializacji bajtów struktury w C#
- 30. Enum serializacji Json vs XML
Jaki jest cel tego !? –
mieć mniejszy szeregowy plik cos Muszę wysłać go czasami przez sieć GPRS gdzie muszę zapłacić za ruch, w każdym razie podczas przywracania (deserializacji) będą one ustawione na wartość domyślną, jeśli nie istnieją, jak uniknąć serializacji? – kosnkov
Myślę, że będziesz musiał napisać własny serializator lub przetworzyć wynik wbudowanego serializera z własnymi regułami. –