public TypeEmbedingPolymorhicMessagePackSerializer(SerializationContext ownerContext, PolymorphismSchema schema) : base(ownerContext) { if (typeof(T).GetIsValueType()) { throw SerializationExceptions.NewValueTypeCannotBePolymorphic(typeof(T)); } this._schema = schema.FilterSelf(); }
public KnownTypePolymorphicMessagePackSerializer(SerializationContext ownerContext, PolymorphismSchema schema) : base(ownerContext, SerializerCapabilities.PackTo | SerializerCapabilities.UnpackFrom | SerializerCapabilities.UnpackTo) { if (typeof(T).GetIsValueType()) { throw SerializationExceptions.NewValueTypeCannotBePolymorphic(typeof(T)); } this._schema = schema.FilterSelf(); this._typeHandleMap = BuildTypeCodeTypeHandleMap(schema.CodeTypeMapping); this._typeCodeMap = BuildTypeHandleTypeCodeMap(schema.CodeTypeMapping); }