示例#1
0
        public ArraySerializer(ISerializableTypeMetadata elementMetadata, int length)
        {
            var typedMetadata = elementMetadata as ISerializableTypeMetadata <TElementType>;

            this._serializationStrategy = typedMetadata == null ? (CollectionSerializationStrategyBase)
                                          new ArraySerializationStrategy(elementMetadata, length)
                                              : new ArraySerializationStrategy <TElementType>(typedMetadata, length);
        }
示例#2
0
        /// <summary>
        /// Creates an instance of <see cref="MemberMetadata"/>
        /// </summary>
        /// <param name="memberMetadata">The inner data metadata to use</param>
        /// <param name="memberInfo">The information of a member to serialize</param>
        public MemberMetadata(ISerializableTypeMetadata memberMetadata, IMemberInfo memberInfo)
        {
            Guard.AgainstNullReference <MetadataException>(memberMetadata, "memberMetadata", NULL_METADATA_MESSAGE);
            Guard.AgainstNullReference <MetadataException>(memberInfo, "memberInfo", NULL_MEMBER_INFO_MESSAGE);

            this._memberMetadata = memberMetadata;
            this._memberInfo     = memberInfo;
        }
示例#3
0
        public CollectionSerializer(ISerializableTypeMetadata elementMetadata, int length)
        {
            Guard.AgainstNullReference <MetadataException>(elementMetadata, "elementMetadata");

            var typedMetadata = elementMetadata as ISerializableTypeMetadata <TElementType>;

            this._serializationStrategy = typedMetadata == null
                                              ? new CollectionStrategySerialization(elementMetadata, length)
                                              : new CollectionStrategySerialization <TElementType>(typedMetadata, length);
        }
示例#4
0
 public ArraySerializationStrategy(ISerializableTypeMetadata <TValue> elementMetadata, int length)
     : base(elementMetadata, length)
 {
 }
示例#5
0
 protected CollectionSerializationStrategyBase(ISerializableTypeMetadata elementMetadata, int length)
 {
     this._elementMetadata = elementMetadata;
     this._length          = length;
 }
 public CollectionStrategySerialization(ISerializableTypeMetadata elementMetadata, int length)
     : base(elementMetadata, length)
 {
     this._collectionType = typeof(List <>).MakeGenericType(this._elementMetadata.ValueType);
 }
示例#7
0
 public CollectionStrategySerialization(ISerializableTypeMetadata <TValue> elementMetadata, int length)
     : base(elementMetadata, length)
 {
     this._serializer = elementMetadata.Serializer;
 }