¿Cuál es el propósito de la propiedad IsReference
en DataContract
? ¿Cómo varía la solicitud y la respuesta con esta propiedad aplicada?IsReference propiedad en contrato de datos
Respuesta
Determina cómo se serializan los objetos, de forma predeterminada, IsReference=false
.
La configuración IsReference = true
permite la serialización de árboles de objetos que pueden referenciarse entre sí. Así, con una lista de Employees
que cada uno tiene una propiedad para Manager
(que también es un Employee
), una referencia a la Manager
para cada Employee
puede ser considerado en lugar de incrustar el Manager
dentro de cada Employee
nodo:
IsReference=false
produciría:
<Employee>
<Manager i:nil=“true“ />
<Name>Kenny</Name>
</Employee>
<Employee>
<Manager>
<Manager i:nil=“true“ />
<Name>Kenny</Name>
</Manager>
<Name>Bob</Name>
</Employee>
<Employee>
<Manager>
<Manager i:nil=“true“ />
<Name>Kenny</Name>
</Manager>
<Name>Alice</Name>
</Employee>
Donde como IsReference=true
produciría:
<Employee z:Id=“i1“ xmlns:z=“http://schemas.microsoft.com/2003/10/Serialization/“>
<Manager i:nil=“true“ />
<Name>Kenny</Name>
</Employee>
<Employee z:Id=“i2“ xmlns:z=“http://schemas.microsoft.com/2003/10/Serialization/“>
<Manager z:Ref=“i1“ />
<Name>Bob</Name>
</Employee>
<Employee z:Id=“i3“ xmlns:z=“http://schemas.microsoft.com/2003/10/Serialization/“>
<Manager z:Ref=“i1“ />
<Name>Alice</Name>
</Employee>
fragmentos tomados de este weblog que tiene una explicación completa junto con ejemplos del XML generado con la propiedad aplicada.
MSDN - IsReference Property proporciona detalles así como Interoperable Object References.
También IsReference
no existe en .NET Framework 3.5. Por lo tanto, puede obtener errores al usarlo con esa versión de Framework, solo existe en 4.5, 4, 3.5 SP1 y Silverlight.
"Error 297 'System.Runtime.Serialization.DataContractAttribute' no contiene una definición para 'IsReference'"
- 1. Contrato de datos WCF y datos de entidad de referencia?
- 2. ¿Qué contrato (Diseño por contrato) es mejor?
- 3. ¿qué significa contrato primero y contrato último?
- 4. ¿Agregar campo al contrato de datos de WCF rompe clientes?
- 5. Excepción de contrato de datos. No puede ser serializado
- 6. Cláusulas de propiedad intelectual/copyright mutuamente beneficiosas para el trabajo autónomo basado en contrato
- 7. ¿Puede un contrato de datos WCF contener un contrato de operación WCF dentro de él? ¿Por qué?
- 8. Cuándo/Por qué no debería usar IsReference = true en mis DataContracts?
- 9. DataContract vs Message Contrato
- 10. ¿Servicios web por contrato?
- 11. WCF Duplex Contrato
- 12. comprensión Código Contrato de error
- 13. WCF contrato desajuste problema
- 14. WPF Propiedad Enlace de datos para anular la propiedad
- 15. ¿Qué lista/tipo de colección es mejor usar en un contrato de datos WCF?
- 16. En WCF, ¿las clases de contrato de datos pueden heredarse entre sí?
- 17. cómo no devolver nulo cuando un campo de miembro de datos no está establecido en el contrato de datos
- 18. contrato equals() y hashCode() en Java
- 19. ¿Versión incorporada sin datos de la propiedad?
- 20. ¿Qué significa "contrato" de una clase?
- 21. Manejo de excepciones: contrato vs enfoque excepcional
- 22. Contrato de datos tipos conocidos y un conjunto de interfaces de heredar entre sí
- 23. static_assert para garantizar el contrato de diseño
- 24. Marcar campos en desuso en el contrato de WCF
- 25. Serializador de contrato de datos: cómo omitir el elemento externo de una colección
- 26. Tratamiento de errores del servidor SQL: excepciones y el contrato cliente-base de datos
- 27. DataContract serialización excepción (nombre de contrato de datos no se espera)
- 28. Enlace de datos a la propiedad CLR en código subyacente
- 29. utilizar otra propiedad en el elemento de datos como identificación
- 30. C# Ocultar una propiedad en datagridview con fuente de datos
1 para el enlace webblog. Eso ayudó mucho. – Darcy