protected internal override void PackToCore(Packer packer, T objectTree)
        {
            packer.PackArrayHeader(3);
            packer.PackExtendedTypeValue(
                this.OwnerContext.TypeEmbeddingSettings.TypeEmbeddingIdentifier,
                TypeInfoEncodingBytes.RawCompressed
                );
            TypeInfoEncoder.Encode(packer, objectTree.GetType());

            this.GetActualTypeSerializer(objectTree.GetType()).PackTo(packer, objectTree);
        }
Example #2
0
        protected internal override void PackToCore(Packer packer, T objectTree)
        {
            string typeCode;

            if (!this._typeCodeMap.TryGetValue(objectTree.GetType().TypeHandle, out typeCode))
            {
                throw new SerializationException(
                          String.Format(
                              CultureInfo.CurrentCulture,
                              "Type '{0}' in assembly '{1}' is not defined as known types.",
                              objectTree.GetType().GetFullName(),
                              objectTree.GetType().GetAssembly()
                              )
                          );
            }

            TypeInfoEncoder.Encode(packer, this._typeCodeMap[objectTree.GetType().TypeHandle]);
            this.GetActualTypeSerializer(objectTree.GetType()).PackTo(packer, objectTree);
        }
 protected internal override void PackToCore(Packer packer, T objectTree)
 {
     TypeInfoEncoder.Encode(packer, this.GetTypeCode(objectTree));
     this.GetActualTypeSerializer(objectTree.GetType()).PackTo(packer, objectTree);
 }