Hay algo de magia con la deserialización de WCF. ¿Cómo crea una instancia del tipo de contrato de datos sin llamar a su constructor?
Por ejemplo, considere este contrato de datos:
[DataContract]
public sealed class CreateMe
{
[DataMember] private readonly string _name;
[DataMember] private readonly int _age;
private readonly bool _wasConstructorCalled;
public CreateMe()
{
_wasConstructorCalled = true;
}
// ... other members here
}
Al obtener una instancia de este objeto a través de DataContractSerializer
, verá que el campo _wasConstructorCalled
es false
.
Entonces, ¿cómo hace esto WCF? ¿Es esta una técnica que otros pueden usar también, o está escondida de nosotros?