protected UnityEnumerableMessagePackSerializer( SerializationContext ownerContext, Type targetType, CollectionTraits traits, PolymorphismSchema schema, SerializerCapabilities capabilities ) : base(ownerContext, targetType, traits.ElementType, schema, capabilities) { this._getCount = traits.CountPropertyGetter; }
/// <summary> /// Initializes a new instance of the <see cref="MessagePackSerializer"/> class. /// </summary> /// <param name="ownerContext">A <see cref="SerializationContext"/> which owns this serializer.</param> /// <param name="packerCompatibilityOptions">The <see cref="PackerCompatibilityOptions"/> for new packer creation.</param> /// <param name="capabilities">The capability flags for this instance.</param> internal MessagePackSerializer(SerializationContext ownerContext, PackerCompatibilityOptions?packerCompatibilityOptions, SerializerCapabilities capabilities) { if (ownerContext == null) { ThrowArgumentNullException("ownerContext"); } this._ownerContext = ownerContext; this._packerCompatibilityOptionsForCompatibility = packerCompatibilityOptions; this._capabilities = capabilities; }
protected UnityDictionaryMessagePackSerializer( SerializationContext ownerContext, Type targetType, Type keyType, Type valueType, CollectionTraits traits, PolymorphismSchema schema, SerializerCapabilities capabilities ) : base(ownerContext, targetType, capabilities) { var safeSchema = schema ?? PolymorphismSchema.Default; this._keySerializer = ownerContext.GetSerializer(keyType, safeSchema.KeySchema); this._valueSerializer = ownerContext.GetSerializer(valueType, safeSchema.ItemSchema); this._add = traits.AddMethod; this._getCount = traits.CountPropertyGetter; this._getKey = traits.ElementType.GetProperty("Key").GetGetMethod(); this._getValue = traits.ElementType.GetProperty("Value").GetGetMethod(); }
protected NonGenericDictionaryMessagePackSerializer(SerializationContext ownerContext, PolymorphismSchema schema, SerializerCapabilities capabilities) : base(ownerContext, capabilities) { var safeSchema = schema ?? PolymorphismSchema.Default; this._keySerializer = ownerContext.GetSerializer(typeof(object), safeSchema.KeySchema); this._valueSerializer = ownerContext.GetSerializer(typeof(object), safeSchema.ItemSchema); }
public ReflectionObjectMessagePackSerializer(SerializationContext context, SerializationTarget target, SerializerCapabilities capabilities) : base(context, capabilities) { ReflectionSerializerHelper.GetMetadata(typeof(T), target.Members, context, out this._getters, out this._setters, out this._memberInfos, out this._contracts, out this._serializers); this._memberIndexes = this._contracts .Select((contract, index) => new KeyValuePair <string, int>(contract.Name, index)) .Where(kv => kv.Key != null) // Set key as transformed. .ToDictionary(kv => context.DictionarySerlaizationOptions.SafeKeyTransformer(kv.Key), kv => kv.Value); this._constructorParameters = (!typeof(IUnpackable).IsAssignableFrom(typeof(T)) && target.IsConstructorDeserialization) ? target.DeserializationConstructor.GetParameters() : null; if (this._constructorParameters != null) { this._constructorArgumentIndexes = new Dictionary <int, int>(this._memberIndexes.Count); foreach (var member in target.Members) { int index = #if SILVERLIGHT && !WINDOWS_PHONE this._constructorParameters.FindIndex( #else Array.FindIndex(this._constructorParameters, #endif // SILVERLIGHT && !WINDOWS_PHONE item => item.Name.Equals(member.Contract.Name, StringComparison.OrdinalIgnoreCase) && item.ParameterType == member.Member.GetMemberValueType() ); if (index >= 0) { this._constructorArgumentIndexes.Add(index, this._memberIndexes[member.Contract.Name]); } } } }
/// <summary> /// Initializes a new instance of the <see cref="CollectionMessagePackSerializerBase{TCollection, TItem}"/> class. /// </summary> /// <param name="ownerContext">A <see cref="SerializationContext"/> which owns this serializer.</param> /// <param name="schema"> /// The schema for collection itself or its items for the member this instance will be used to. /// <c>null</c> will be considered as <see cref="PolymorphismSchema.Default"/>. /// </param> /// <param name="capabilities">A serializer calability flags represents capabilities of this instance.</param> /// <exception cref="ArgumentNullException"> /// <paramref name="ownerContext"/> is <c>null</c>. /// </exception> protected CollectionMessagePackSerializerBase(SerializationContext ownerContext, PolymorphismSchema schema, SerializerCapabilities capabilities) : base(ownerContext, schema, capabilities) { }
/// <summary> /// Initializes a new instance of the <see cref="EnumerableMessagePackSerializer{TCollection, TItem}"/> class. /// </summary> /// <param name="ownerContext">A <see cref="SerializationContext"/> which owns this serializer.</param> /// <param name="schema"> /// The schema for collection itself or its items for the member this instance will be used to. /// <c>null</c> will be considered as <see cref="PolymorphismSchema.Default"/>. /// </param> /// <param name="capabilities">A serializer calability flags represents capabilities of this instance.</param> /// <exception cref="ArgumentNullException"> /// <paramref name="ownerContext"/> is <c>null</c>. /// </exception> protected EnumerableMessagePackSerializer(SerializationContext ownerContext, PolymorphismSchema schema, SerializerCapabilities capabilities) : base(ownerContext, schema, capabilities) { }
private NonGenericMessagePackSerializer(SerializationContext ownerContext, Type targetType, PackerCompatibilityOptions?packerCompatibilityOptions, SerializerCapabilities capabilities) : base(ownerContext, packerCompatibilityOptions, capabilities) { this._targetType = targetType; this._isNullable = JudgeNullable(targetType); }
protected UnityNonGenericCollectionMessagePackSerializer(SerializationContext ownerContext, Type targetType, PolymorphismSchema schema, SerializerCapabilities capabilities) : base(ownerContext, targetType, schema, capabilities) { }
protected DictionaryMessagePackSerializerBase( SerializationContext ownerContext, PolymorphismSchema schema, SerializerCapabilities capabilities ) : base( ownerContext, capabilities ) { var safeSchema = schema ?? PolymorphismSchema.Default; this._keySerializer = ownerContext.GetSerializer<TKey>( safeSchema.KeySchema ); this._valueSerializer = ownerContext.GetSerializer<TValue>( safeSchema.ItemSchema ); }
/// <summary> /// Initializes a new instance of the <see cref="ReadOnlyDictionaryMessagePackSerializer{TDictionary, TKey, TValue}"/> class. /// </summary> /// <param name="ownerContext">A <see cref="SerializationContext"/> which owns this serializer.</param> /// <param name="schema"> /// The schema for collection itself or its items for the member this instance will be used to. /// <c>null</c> will be considered as <see cref="PolymorphismSchema.Default"/>. /// </param> /// <param name="capabilities">A serializer calability flags represents capabilities of this instance.</param> /// <exception cref="ArgumentNullException"> /// <paramref name="ownerContext"/> is <c>null</c>. /// </exception> protected ReadOnlyDictionaryMessagePackSerializer(SerializationContext ownerContext, PolymorphismSchema schema, SerializerCapabilities capabilities) : base(ownerContext, schema, capabilities) { }
private NonGenericMessagePackSerializer( SerializationContext ownerContext, Type targetType, PackerCompatibilityOptions? packerCompatibilityOptions, SerializerCapabilities capabilities ) : base( ownerContext, packerCompatibilityOptions, capabilities ) { this._targetType = targetType; this._isNullable = JudgeNullable( targetType ); }
/// <summary> /// Initializes a new instance of the <see cref="NonGenericMessagePackSerializer"/> class with explicitly specified compatibility option. /// </summary> /// <param name="ownerContext">A <see cref="SerializationContext"/> which owns this serializer.</param> /// <param name="targetType">The type to be serialized.</param> /// <param name="packerCompatibilityOptions">The <see cref="PackerCompatibilityOptions"/> for new packer creation.</param> /// <param name="capabilities">The capability flags for this instance.</param> /// <exception cref="ArgumentNullException"><paramref name="ownerContext"/> is <c>null</c>.</exception> /// <remarks> /// This method also supports backword compatibility with 0.4. /// </remarks> protected NonGenericMessagePackSerializer( SerializationContext ownerContext, Type targetType, PackerCompatibilityOptions packerCompatibilityOptions, SerializerCapabilities capabilities ) : this( ownerContext, targetType, new PackerCompatibilityOptions?( packerCompatibilityOptions ), capabilities ) { }
/// <summary> /// Initializes a new instance of the <see cref="NonGenericMessagePackSerializer"/> class with explicitly specified compatibility option. /// </summary> /// <param name="ownerContext">A <see cref="SerializationContext"/> which owns this serializer.</param> /// <param name="targetType">The type to be serialized.</param> /// <param name="capabilities">The capability flags for this instance.</param> /// <exception cref="ArgumentNullException"><paramref name="ownerContext"/> is <c>null</c>.</exception> protected NonGenericMessagePackSerializer( SerializationContext ownerContext, Type targetType, SerializerCapabilities capabilities ) : this( ownerContext, targetType, null, capabilities ) { }
protected UnityEnumerableMessagePackSerializerBase(SerializationContext ownerContext, Type targetType, Type itemType, PolymorphismSchema schema, SerializerCapabilities capabilities) : base(ownerContext, targetType, capabilities) { this._itemSerializer = ownerContext.GetSerializer(itemType, (schema ?? PolymorphismSchema.Default).ItemSchema); }
/// <summary> /// Initializes a new instance of the <see cref="NonGenericMessagePackSerializer"/> class with explicitly specified compatibility option. /// </summary> /// <param name="ownerContext">A <see cref="SerializationContext"/> which owns this serializer.</param> /// <param name="targetType">The type to be serialized.</param> /// <param name="capabilities">The capability flags for this instance.</param> /// <exception cref="ArgumentNullException"><paramref name="ownerContext"/> is <c>null</c>.</exception> protected NonGenericMessagePackSerializer(SerializationContext ownerContext, Type targetType, SerializerCapabilities capabilities) : this(ownerContext, targetType, null, capabilities) { }
/// <summary> /// Initializes a new instance of the <see cref="NonGenericMessagePackSerializer"/> class with explicitly specified compatibility option. /// </summary> /// <param name="ownerContext">A <see cref="SerializationContext"/> which owns this serializer.</param> /// <param name="targetType">The type to be serialized.</param> /// <param name="packerCompatibilityOptions">The <see cref="PackerCompatibilityOptions"/> for new packer creation.</param> /// <param name="capabilities">The capability flags for this instance.</param> /// <exception cref="ArgumentNullException"><paramref name="ownerContext"/> is <c>null</c>.</exception> /// <remarks> /// This method also supports backword compatibility with 0.4. /// </remarks> protected NonGenericMessagePackSerializer(SerializationContext ownerContext, Type targetType, PackerCompatibilityOptions packerCompatibilityOptions, SerializerCapabilities capabilities) : this(ownerContext, targetType, new PackerCompatibilityOptions?(packerCompatibilityOptions), capabilities) { }
/// <summary> /// Initializes a new instance of the <see cref="MessagePackSerializer"/> class. /// </summary> /// <param name="ownerContext">A <see cref="SerializationContext"/> which owns this serializer.</param> /// <param name="packerCompatibilityOptions">The <see cref="PackerCompatibilityOptions"/> for new packer creation.</param> /// <param name="capabilities">The capability flags for this instance.</param> internal MessagePackSerializer( SerializationContext ownerContext, PackerCompatibilityOptions? packerCompatibilityOptions, SerializerCapabilities capabilities ) { if ( ownerContext == null ) { ThrowArgumentNullException( "ownerContext" ); } this._ownerContext = ownerContext; this._packerCompatibilityOptionsForCompatibility = packerCompatibilityOptions; this._capabilities = capabilities; }
/// <summary> /// Initializes a new instance of the <see cref="NonGenericListMessagePackSerializer{TList}"/> class. /// </summary> /// <param name="ownerContext">A <see cref="SerializationContext"/> which owns this serializer.</param> /// <param name="schema"> /// The schema for collection itself or its items for the member this instance will be used to. /// <c>null</c> will be considered as <see cref="PolymorphismSchema.Default"/>. /// </param> /// <param name="capabilities">A serializer calability flags represents capabilities of this instance.</param> /// <exception cref="ArgumentNullException"> /// <paramref name="ownerContext"/> is <c>null</c>. /// </exception> protected NonGenericListMessagePackSerializer(SerializationContext ownerContext, PolymorphismSchema schema, SerializerCapabilities capabilities) : base(ownerContext, schema, capabilities) { }
protected NonGenericEnumerableMessagePackSerializerBase(SerializationContext ownerContext, PolymorphismSchema schema, SerializerCapabilities capabilities) : base(ownerContext, capabilities) { this._itemSerializer = ownerContext.GetSerializer(typeof(object), (schema ?? PolymorphismSchema.Default).ItemSchema); }