diff --git a/src/System.IO/pkg/System.IO.pkgproj b/src/System.IO/pkg/System.IO.pkgproj
index 9a11debbdd39..25d7ae99fe77 100644
--- a/src/System.IO/pkg/System.IO.pkgproj
+++ b/src/System.IO/pkg/System.IO.pkgproj
@@ -2,7 +2,7 @@
-
+
net463;netcoreapp1.1;uap10.1;$(AllXamarinFrameworks)
diff --git a/src/System.IO/ref/System.IO.builds b/src/System.IO/ref/System.IO.builds
new file mode 100644
index 000000000000..f6840fd8a185
--- /dev/null
+++ b/src/System.IO/ref/System.IO.builds
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+ netcoreapp1.1
+
+
+
+
diff --git a/src/System.IO/ref/System.IO.cs b/src/System.IO/ref/System.IO.cs
index 9f4f73d6dd4e..937400a758c0 100644
--- a/src/System.IO/ref/System.IO.cs
+++ b/src/System.IO/ref/System.IO.cs
@@ -152,6 +152,10 @@ public override void SetLength(long value) { }
public override void Write(byte[] array, int offset, int count) { }
public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { return default(System.Threading.Tasks.Task); }
public override void WriteByte(byte value) { }
+#if netcoreapp11
+ public Stream UnderlyingStream { get { return default(Stream); } }
+ public int BufferSize { get { return 0; } }
+#endif
}
public partial class EndOfStreamException : System.IO.IOException
{
diff --git a/src/System.IO/ref/System.IO.csproj b/src/System.IO/ref/System.IO.csproj
index b1fcb23659aa..669a2321fa2d 100644
--- a/src/System.IO/ref/System.IO.csproj
+++ b/src/System.IO/ref/System.IO.csproj
@@ -4,15 +4,12 @@
Library
.NETStandard,Version=v1.7
- netstandard1.7;uap10.1
+ netstandard1.7;uap10.1
+ $(DefineConstants);netcoreapp11
-
-
-
-
diff --git a/src/System.IO/ref/project.json b/src/System.IO/ref/project.json
index b334053605a7..5665dca85416 100644
--- a/src/System.IO/ref/project.json
+++ b/src/System.IO/ref/project.json
@@ -4,10 +4,7 @@
"System.Text.Encoding": "4.4.0-beta-24611-02"
},
"frameworks": {
- "netstandard1.7": {
- "imports": [
- "dotnet5.8"
- ]
- }
+ "netstandard1.7": {},
+ "netcoreapp1.1": {},
}
}
diff --git a/src/System.IO/src/System/IO/BufferedStream.cs b/src/System.IO/src/System/IO/BufferedStream.cs
index 2fd8d7338ca4..ed6b8dab2262 100644
--- a/src/System.IO/src/System/IO/BufferedStream.cs
+++ b/src/System.IO/src/System/IO/BufferedStream.cs
@@ -147,6 +147,22 @@ private void EnsureBufferAllocated()
_buffer = new byte[_bufferSize];
}
+ public Stream UnderlyingStream
+ {
+ get
+ {
+ return _stream;
+ }
+ }
+
+ public int BufferSize
+ {
+ get
+ {
+ return _bufferSize;
+ }
+ }
+
public override bool CanRead
{
[Pure]
diff --git a/src/System.IO/tests/BufferedStream/BufferedStreamTests.netcoreapp1.1.cs b/src/System.IO/tests/BufferedStream/BufferedStreamTests.netcoreapp1.1.cs
new file mode 100644
index 000000000000..01ad4e0e3a46
--- /dev/null
+++ b/src/System.IO/tests/BufferedStream/BufferedStreamTests.netcoreapp1.1.cs
@@ -0,0 +1,27 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System.IO;
+using Xunit;
+
+namespace System.IO.Tests
+{
+ public partial class BufferedStreamTests
+ {
+ [Fact]
+ public void UnderlyingStream()
+ {
+ var underlyingStream = new MemoryStream();
+ var bufferedStream = new BufferedStream(underlyingStream);
+ Assert.Same(underlyingStream, bufferedStream.UnderlyingStream);
+ }
+
+ [Fact]
+ public void BufferSize()
+ {
+ var bufferedStream = new BufferedStream(new MemoryStream(), 1234);
+ Assert.Equal(1234, bufferedStream.BufferSize);
+ }
+ }
+}
diff --git a/src/System.IO/tests/System.IO.Tests.builds b/src/System.IO/tests/System.IO.Tests.builds
index d77c341541b3..2a55ee1a1825 100644
--- a/src/System.IO/tests/System.IO.Tests.builds
+++ b/src/System.IO/tests/System.IO.Tests.builds
@@ -7,6 +7,10 @@
netstandard1.5
netcoreapp1.0
+
+ netcoreapp1.1
+ netcoreapp1.1
+
Windows_NT
net463
diff --git a/src/System.IO/tests/System.IO.Tests.csproj b/src/System.IO/tests/System.IO.Tests.csproj
index 2fb3a12186a3..1158d06a3a6c 100644
--- a/src/System.IO/tests/System.IO.Tests.csproj
+++ b/src/System.IO/tests/System.IO.Tests.csproj
@@ -22,6 +22,7 @@
+
diff --git a/src/System.Runtime.WindowsRuntime/src/System.Runtime.WindowsRuntime.csproj b/src/System.Runtime.WindowsRuntime/src/System.Runtime.WindowsRuntime.csproj
index 3daf9bfa7742..16bffc1927a3 100644
--- a/src/System.Runtime.WindowsRuntime/src/System.Runtime.WindowsRuntime.csproj
+++ b/src/System.Runtime.WindowsRuntime/src/System.Runtime.WindowsRuntime.csproj
@@ -99,7 +99,6 @@
Common\Interop\Windows\Interop.Libraries.cs
-
diff --git a/src/System.Runtime.WindowsRuntime/src/System/IO/BufferedStreamWrapper.cs b/src/System.Runtime.WindowsRuntime/src/System/IO/BufferedStreamWrapper.cs
deleted file mode 100644
index afc7031595af..000000000000
--- a/src/System.Runtime.WindowsRuntime/src/System/IO/BufferedStreamWrapper.cs
+++ /dev/null
@@ -1,198 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-using System.Diagnostics.Contracts;
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace System.IO
-{
- ///
- /// A BufferedStream wrapper which expose BufferedStream's UnderlyingStream and BufferSize
- ///
- internal sealed class BufferedStreamWrapper : Stream
- {
- private BufferedStream _bufferedStream;
- private Stream _stream; // Underlying stream. Close sets _stream to null.
- private readonly int _bufferSize; // Length of internal buffer (not counting the shadow buffer).
-
- public BufferedStreamWrapper(Stream stream, int bufferSize)
- {
- _bufferedStream = new BufferedStream(stream, bufferSize);
- _stream = stream;
- _bufferSize = bufferSize;
- }
-
- private void EnsureNotClosed()
- {
- if (_bufferedStream == null)
- throw new ObjectDisposedException(null, SR.ObjectDisposed_StreamClosed);
- }
-
- internal BufferedStream bufferedStream
- {
- [Pure]
- get
- { return _bufferedStream; }
- }
-
- internal Stream UnderlyingStream
- {
- [Pure]
- get
- { return _stream; }
- }
-
- internal int BufferSize
- {
- [Pure]
- get
- { return _bufferSize; }
- }
-
- public override bool CanRead
- {
- [Pure]
- get
- { return _bufferedStream != null && _bufferedStream.CanRead; }
- }
-
- public override bool CanWrite
- {
- [Pure]
- get
- { return _bufferedStream != null && _bufferedStream.CanWrite; }
- }
-
- public override bool CanSeek
- {
- [Pure]
- get
- { return _bufferedStream != null && _bufferedStream.CanSeek; }
- }
-
- public override long Length
- {
- get
- {
- EnsureNotClosed();
- return _bufferedStream.Length;
- }
- }
-
- public override long Position
- {
- get
- {
- EnsureNotClosed();
- return _bufferedStream.Position;
- }
- set
- {
- EnsureNotClosed();
- _bufferedStream.Position = value;
- }
- }
-
- protected override void Dispose(bool disposing)
- {
- try
- {
- if (disposing && _bufferedStream != null)
- {
- _bufferedStream.Dispose();
- }
- }
- finally
- {
- _bufferedStream = null;
- _stream = null;
- }
- }
-
- public override void Flush()
- {
- EnsureNotClosed();
- _bufferedStream.Flush();
- }
-
- public override Task FlushAsync(CancellationToken cancellationToken)
- {
- EnsureNotClosed();
- return _bufferedStream.FlushAsync();
- }
-
- public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
- {
- EnsureNotClosed();
- return _bufferedStream.BeginRead(buffer, offset, count, callback, state);
- }
-
- public override int EndRead(IAsyncResult asyncResult)
- {
- EnsureNotClosed();
- return _bufferedStream.EndRead(asyncResult);
- }
-
- public override int Read(byte[] array, int offset, int count)
- {
- EnsureNotClosed();
- return _bufferedStream.Read(array, offset, count);
- }
-
- public override Task ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
- {
- EnsureNotClosed();
- return _bufferedStream.ReadAsync(buffer, offset, count, cancellationToken);
- }
-
- public override int ReadByte()
- {
- EnsureNotClosed();
- return _bufferedStream.ReadByte();
- }
-
- public override void Write(byte[] array, int offset, int count)
- {
- EnsureNotClosed();
- _bufferedStream.Write(array, offset, count);
- }
-
- public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
- {
- EnsureNotClosed();
- return _bufferedStream.BeginWrite(buffer, offset, count, callback, state);
- }
-
- public override void EndWrite(IAsyncResult asyncResult)
- {
- EnsureNotClosed();
- _bufferedStream.EndWrite(asyncResult);
- }
-
- public override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
- {
- EnsureNotClosed();
- return _bufferedStream.WriteAsync(buffer, offset, count, cancellationToken);
- }
-
- public override void WriteByte(byte value)
- {
- EnsureNotClosed();
- _bufferedStream.WriteByte(value);
- }
-
- public override long Seek(long offset, SeekOrigin origin)
- {
- EnsureNotClosed();
- return _bufferedStream.Seek(offset, origin);
- }
-
- public override void SetLength(long value)
- {
- EnsureNotClosed();
- _bufferedStream.SetLength(value);
- }
- } // class BufferedStreamWrapper
-} // namespace
diff --git a/src/System.Runtime.WindowsRuntime/src/System/IO/WindowsRuntimeStreamExtensions.cs b/src/System.Runtime.WindowsRuntime/src/System/IO/WindowsRuntimeStreamExtensions.cs
index b046a0527af5..14f9733c9e35 100644
--- a/src/System.Runtime.WindowsRuntime/src/System/IO/WindowsRuntimeStreamExtensions.cs
+++ b/src/System.Runtime.WindowsRuntime/src/System/IO/WindowsRuntimeStreamExtensions.cs
@@ -50,7 +50,7 @@ private static void AssertMapContains(ConditionalWeakTable new BufferedStreamWrapper(WinRtToNetFxStreamAdapter.Create(wrtStr), bufferSize));
+ return s_winRtToNetFxAdapterMap.GetValue(winRtStream, (wrtStr) => new BufferedStream(WinRtToNetFxStreamAdapter.Create(wrtStr), bufferSize));
}
@@ -214,7 +214,7 @@ private static Stream AsStreamInternalFactoryHelper(Object windowsRuntimeStream,
: WinRtToNetFxAdapterMap_GetValue(windowsRuntimeStream, bufferSize);
Debug.Assert(adapter != null);
- Debug.Assert((adapter is BufferedStreamWrapper && ((BufferedStreamWrapper)adapter).UnderlyingStream is WinRtToNetFxStreamAdapter)
+ Debug.Assert((adapter is BufferedStream && ((BufferedStream)adapter).UnderlyingStream is WinRtToNetFxStreamAdapter)
|| (adapter is WinRtToNetFxStreamAdapter));
if (forceBufferSize)
@@ -222,7 +222,7 @@ private static Stream AsStreamInternalFactoryHelper(Object windowsRuntimeStream,
WinRtToNetFxStreamAdapter actualAdapter = adapter as WinRtToNetFxStreamAdapter;
if (actualAdapter == null)
- actualAdapter = ((BufferedStreamWrapper)adapter).UnderlyingStream as WinRtToNetFxStreamAdapter;
+ actualAdapter = ((BufferedStream)adapter).UnderlyingStream as WinRtToNetFxStreamAdapter;
actualAdapter.SetWonInitializationRace();
@@ -307,7 +307,7 @@ private static Object AsWindowsRuntimeStreamInternal(Stream stream)
WinRtToNetFxStreamAdapter sAdptr = stream as WinRtToNetFxStreamAdapter;
if (sAdptr == null)
{
- BufferedStreamWrapper buffAdptr = stream as BufferedStreamWrapper;
+ BufferedStream buffAdptr = stream as BufferedStream;
if (buffAdptr != null)
sAdptr = buffAdptr.UnderlyingStream as WinRtToNetFxStreamAdapter;
}