コード例 #1
0
        /// <inheritdoc />
        public ICompressor BuildCompressor(
            CompressionKind compressionKind)
        {
            if (compressionKind == CompressionKind.Invalid)
            {
                throw new ArgumentOutOfRangeException(Invariant($"'{nameof(compressionKind)}' == '{CompressionKind.Invalid}'"), (Exception)null);
            }

            ICompressor result;

            switch (compressionKind)
            {
            case CompressionKind.None:
                result = new NullCompressor();
                break;

            case CompressionKind.DotNetZip:
                result = new DotNetZipCompressor();
                break;

            default:
                throw new NotSupportedException(Invariant($"{nameof(CompressionKind)} value {compressionKind} is not currently supported."));
            }

            return(result);
        }
コード例 #2
0
        /// <inheritdoc />
        public ICompressAndDecompress BuildCompressor(
            CompressionKind compressionKind)
        {
            new { compressionKind }.AsArg().Must().NotBeEqualTo(CompressionKind.Invalid);

            ICompressAndDecompress result;

            switch (compressionKind)
            {
            case CompressionKind.None:
                result = new NullCompressor();
                break;

            case CompressionKind.DotNetZip:
                result = new DotNetZipCompressor();
                break;

            default:
                throw new NotSupportedException(Invariant($"{nameof(CompressionKind)} value {compressionKind} is not currently supported."));
            }

            return(result);
        }