diff --git a/BinaryObjectScanner/OldDotNet.cs b/BinaryObjectScanner/OldDotNet.cs new file mode 100644 index 00000000..146332a9 --- /dev/null +++ b/BinaryObjectScanner/OldDotNet.cs @@ -0,0 +1,50 @@ +#if NET20 || NET35 + +using System; +using System.IO; + +namespace BinaryObjectScanner +{ + /// + /// Derived from the mscorlib code from .NET Framework 4.0 + /// + internal static class OldDotNet + { + public static void CopyTo(this Stream source, Stream destination) + { + if (destination == null) + { + throw new ArgumentNullException("destination"); + } + + if (!source.CanRead && !source.CanWrite) + { + throw new ObjectDisposedException(null); + } + + if (!destination.CanRead && !destination.CanWrite) + { + throw new ObjectDisposedException("destination"); + } + + if (!source.CanRead) + { + throw new NotSupportedException(); + } + + if (!destination.CanWrite) + { + throw new NotSupportedException(); + } + + byte[] array = new byte[81920]; + int count; + while ((count = source.Read(array, 0, array.Length)) != 0) + { + destination.Write(array, 0, count); + } + } + } +} + +#endif