Como el error muestra que no tengo un setter para mi propiedad, pero no quiero un setter, debería ser de solo lectura.System.Runtime.Serialization.InvalidDataContractException: Ningún método establecido para la propiedad
Respuesta
Editado: Haga que el ajustador internal
.
Esto todavía se puede ajustar dentro del ensamblaje, pero es un buen truco que funciona bien cuando se usa en objetos de datos ubicados en un ensamblaje que otros consumen, ya que los ensamblados que consumen no podrán establecer la propiedad, pero los varios serializadores pueden.
Recuerde que WCF necesita crear una instancia del objeto a partir de su representación serializada (a menudo XML) y si la propiedad no tiene definidor no puede asignar un valor. Los objetos no se transfieren entre el cliente y el servidor, sino solo las representaciones serializadas, por lo que el objeto debe reconstruirse en cada extremo.
Su pregunta es un poco vago, pero supongo que esta es la respuesta que estás buscando:
defecto serialización sólo funcionará para las propiedades de lectura y escritura, porque no se puede rehidratar un objeto sin establecer valores de propiedad . Si desea que funcione con la propiedad de solo lectura, debe implementar la interfaz de serialización usted mismo, en lugar de solo agregar atributos.
Suponiendo que está utilizando la serialización de DataContract, I think la mejor opción es implementar ISerializable e implementar los métodos usted mismo.
- 1. WPF/XAML Estilo establecido ¿Propiedad para elementos secundarios?
- 2. ningún método adecuado para el error tipo
- 3. ASP.Net - CacheDuration propiedad parece tener ningún efecto
- 4. método genérico con ningún parámetro
- 5. RoR valor establecido para textarea
- 6. git push: objetivo establecido para la rama
- 7. Atributos y documentación XML para método/propiedad
- 8. El método .fadeOut() para usar la propiedad de visibilidad en función de la propiedad de visualización
- 9. Propiedad o método WriteOnly?
- 10. no se encontró ningún método adecuado para anular C#
- 11. Diferencia entre la propiedad y método
- 12. Backbone - objeto rinda ha ningún método 'aplicar'
- 13. Margen establecido programáticamente para TableRow
- 14. Ningún método de fábrica concordante: método de fábrica 'aspectOf()'
- 15. TypeError HTMLSpanElement tiene ningún método 'html'
- 16. WPF RichTextBox - El método ScrollToEnd() no causa ningún desplazamiento
- 17. Método de llamada establecido como destino en UIButton
- 18. ¿Qué es el método, la propiedad y la función?
- 19. Symfony2 establecido
- 20. IllegalArgumentException en la clase: ..., getter método de la propiedad: id
- 21. Usar Reflection para llamar a un método de una propiedad
- 22. tiempo de espera establecido para una operación
- 23. SQL Null establecido en cero para agregar
- 24. Método de conteo o propiedad para un IList
- 25. Método de extensión C# para verificar si una enumeración tiene un indicador establecido
- 26. ¿Para qué sirve la propiedad .NET Control.Margin?
- 27. Paso de una propiedad en un método para cambiar esa propiedad
- 28. Método vs propiedad en C# - ¿cuál es la diferencia
- 29. Java - Clone la propiedad dentro de método getter
- 30. El objeto no admite la propiedad o el método 'filtro'
Protegido no permitirá que la propiedad se establezca desde fuera de la clase, por lo que la deserialización aún fallará ... –
Gracias Slugster !!! Para su respuesta ... – BreakHead
@Dan - verifique mi edición. Sabía que había encontrado este antes, pero tenía que volver y comprobar cómo lo había tratado. Tienes razón: Inicialmente probé * protected * pero descubrí que no funcionaba, así que usé * internal * en su lugar. – slugster