WCF のデシリアライゼーションには魔法がかかっています。コンストラクターを呼び出さずに、データ コントラクト型のインスタンスをどのようにインスタンス化しますか?
たとえば、次のデータ コントラクトを考えてみましょう。
[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
}
経由でこのオブジェクトのインスタンスを取得するDataContractSerializer
と、フィールド_wasConstructorCalled
がfalse
.
では、WCF はこれをどのように行うのでしょうか。これは他の人も使用できるテクニックですか、それとも私たちから隠されていますか?