Jak pokazuje błąd, nie mam ustawiacza dla mojej własności, ale nie chcę ustawiacza, powinien on być tylko do odczytu.System.Runtime.Serialization.InvalidDataContractException: Brak ustawionej metody dla właściwości
Odpowiedz
Edytowane: Ustaw setter internal
.
To będzie nadal możliwe do ustawienia w zespole, ale jest to fajna sztuczka, która działa dobrze, gdy jest używana na obiektach danych znajdujących się w zespole, który jest zużywany przez innych, ponieważ zużywające się zestawy nie będą w stanie ustawić właściwości, ale różne serializery mogą.
Należy pamiętać, że WCF musi utworzyć instancję obiektu z jego serializowanej reprezentacji (często XML), a jeśli właściwość nie ma programu ustawiającego, nie może przypisać wartości. Obiekty nie są przesyłane między klientem a serwerem, ale tylko serializowane reprezentacje, więc obiekt musi zostać zrekonstruowany na każdym końcu.
Twoje pytanie jest trochę niejasne, ale myślę, że jest to odpowiedź szukasz:
domyślne serializacji będzie działać tylko dla właściwości tylko do odczytu, ponieważ nie można nawodnić obiektu bez określania wartości nieruchomości . Jeśli chcesz, aby działał on z właściwością będącą w trybie tylko do odczytu, musisz sam wdrożyć interfejs serializacji, a nie tylko dodawać atrybuty.
Zakładając, że używasz serializacji DataContract, I myśl najlepszą opcją jest wdrożenie ISerializable i samodzielne wdrożenie metod.
- 1. C# Właściwości indeksatora - Jakikolwiek sposób wirtualizacji get a nie ustawionej metody?
- 2. Brak właściwości NSUserActivity contentAttributeSet
- 3. Atrybuty i dokumentacja XML dla metody/właściwości
- 4. Błąd: Brak takiej właściwości: GROUP dla klasy: org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer
- 5. C# 4.0, wykryj brak metody
- 6. Metody i właściwości obiektów listy
- 7. Błąd Xcode: Brak znanej metody wprowadzania dla selektora
- 8. Brzytwa: Brak przeciążenia dla metody "Write" przyjmuje 0 argumentów
- 9. Dropwizard/Jersey - brak zależności dla publicznej metody podczas uruchamiania testów
- 10. Brak takiego wyjątku dla metody Hadoop <init>
- 11. Wygeneruj wszystkie kombinacje dla pary bitów ustawionej na 1?
- 12. Prawy wyjątek rzucać za brak właściwości systemu
- 13. groovy.lang.MissingPropertyException: Brak takiej właściwości: menedżer klasy: Script1
- 14. Jak mogę skrócić NSString do ustawionej długości?
- 15. Brak właściwości serializacji JSON w klasie pochodnej
- 16. Magento Brak metody wysyłki w kasie gościa
- 17. Rurociąg Jenkinsa: brak takiej metody DSL
- 18. Brak metody rozszerzenia "Pierwszy" w klasie pochodnej
- 19. Zapisywanie zmiennej ustawionej przez moduł Luigi nginxa
- 20. Obiekt nie obsługuje filtru właściwości lub metody
- 21. Brak właściwości "HasValue" dla int do wartości null dla dostawcy usługi ODataService
- 22. Brak widocznego interfejsu @ dla
- 23. "Brak dostawcy dla MdDialogRef!"
- 24. Brak dostawcy dla FormBuilder
- 25. Brak dostawcy dla ConnectionBackend
- 26. Brak dostawcy dla Http
- 27. Jak łatwo znaleźć nieużywane publiczne metody/właściwości
- 28. Dziedziczenie i statyczne metody i właściwości PHP
- 29. Właściwości stylu dla TDateTimePicker
- 30. Kod wyjątku StructureMap 205 Brak żądanej właściwości instancji
Zabezpieczenie nie pozwoli na ustawienie właściwości spoza klasy, więc deserializacja nadal będzie nieskuteczna ... –
Dzięki Slugster !!! Za odpowiedź ... – BreakHead
@Dan - sprawdź moją edycję. Wiedziałem, że spotkałem się z tym wcześniej, ale musiałem wrócić i sprawdzić, jak sobie z tym poradziłem. Masz rację - początkowo próbowałem * chronić *, ale okazało się, że to nie działa, więc użyłem * wewnętrznego * zamiast tego. – slugster