/// <inheritdoc />
        public override void WriteMember(TContainingType obj, IWireStreamWriterStrategy dest)
        {
            WriteCollectionSizeToField(obj);

            //TODO: Should we spend CPU cycles to reset the original value? This kind of changes the state of the DTO
            DecoratedMediator.WriteMember(obj, dest);
        }
        /// <inheritdoc />
        public override Task SetMemberAsync(TContainingType obj, IWireStreamReaderStrategyAsync source)
        {
            //We need to reconvert the size back to bytes to reinsert into the stream
            //so that the collection can recieve it and then be able to deserialize the elements.
            byte[] bytes = ((TSizeType)SizeMemberGetter.Getter(obj)).Reinterpret();

            //We don't need to modify how we set the size member
            return(DecoratedMediator.SetMemberAsync(obj, source.PreprendWithBytesAsync(bytes)));
        }
示例#3
0
        /// <inheritdoc />
        public void SetMember(TContainingType obj, IWireStreamReaderStrategy source)
        {
            //Check if we should read
            if (!(bool)isReadWriteEnabledGetter.Getter(obj))
            {
                return;
            }

            DecoratedMediator.SetMember(obj, source);
        }
示例#4
0
        /// <inheritdoc />
        public void WriteMember(TContainingType obj, IWireStreamWriterStrategy dest)
        {
            //Check if we should read
            if (!(bool)isReadWriteEnabledGetter.Getter(obj))
            {
                return;
            }

            DecoratedMediator.WriteMember(obj, dest);
        }
示例#5
0
        /// <inheritdoc />
        public async Task WriteMemberAsync(TContainingType obj, IWireStreamWriterStrategyAsync dest)
        {
            //Check if we should read
            if (!(bool)isReadWriteEnabledGetter.Getter(obj))
            {
                return;
            }

            await DecoratedMediator.WriteMemberAsync(obj, dest)
            .ConfigureAwait(false);
        }
示例#6
0
        /// <inheritdoc />
        public async Task SetMemberAsync(object obj, IWireStreamReaderStrategyAsync source)
        {
            //Check if we should read
            if (!(bool)isReadWriteEnabledGetter.Getter((TContainingType)obj))
            {
                return;
            }

            await DecoratedMediator.SetMemberAsync(obj, source)
            .ConfigureAwait(false);
        }
 /// <inheritdoc />
 public override Task WriteMemberAsync(TContainingType obj, IWireStreamWriterStrategyAsync dest)
 {
     return(DecoratedMediator.WriteMemberAsync(obj, new SkipSomeBytesWireStreamWriterStrategyDecoratorAsync(dest, SizeOfCollectionSizeType)));
 }
 /// <inheritdoc />
 public override void WriteMember(TContainingType obj, IWireStreamWriterStrategy dest)
 {
     //TODO: Should we spend CPU cycles to reset the original value? This kind of changes the state of the DTO
     DecoratedMediator.WriteMember(obj, new SkipSomeBytesWireStreamWriterStrategyDecorator(dest, SizeOfCollectionSizeType));
 }
 /// <inheritdoc />
 public override Task SetMemberAsync(TContainingType obj, IWireStreamReaderStrategyAsync source)
 {
     //We don't need to modify how we set the size member
     return(DecoratedMediator.SetMemberAsync(obj, source));
 }
        /// <inheritdoc />
        public override Task WriteMemberAsync(TContainingType obj, IWireStreamWriterStrategyAsync dest)
        {
            WriteCollectionSizeToField(obj);

            return(DecoratedMediator.WriteMemberAsync(obj, dest));
        }
 /// <inheritdoc />
 public override void SetMember(TContainingType obj, IWireStreamReaderStrategy source)
 {
     //We don't need to modify how we set the size member
     DecoratedMediator.SetMember(obj, source);
 }