Я не думаю, что вам вообще нужна DataReader
здесь.Попробуйте это:
using System.Runtime.InteropServices.WindowsRuntime; // for AsBuffer()
...
var file = await captureUi.CaptureFileAsync(CameraCaptureUIMode.Photo);
var stream = await result.OpenForReadAsync();
byte[] data = new byte[file.Size];
await stream.ReadAsync(data.AsBuffer(), (uint)data.Length, InputStreamOptions.None);
В качестве альтернативы вы можете использовать AsStream()
метод расширения (от System.IO.WindowsRuntimeStreamExtensons
), чтобы обернуть WinRT IInputStream
как System.IO.Stream
, а затем использовать обычные методы .NET.