Il y a quelque chose de magique se passe avec la FMC de la désérialisation. Comment est-il instancier une instance de données type de contrat sans appel de son constructeur?
Par exemple, tenir compte de ces données de contrat:
[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
}
Lors de l'obtention d'une instance de cet objet via DataContractSerializer
vous verrez que le champ _wasConstructorCalled
est false
.
Alors, comment est-WCF faire cela? Est-ce une technique que d'autres peuvent utiliser trop, ou est-il caché loin de nous?