WindowsRuntimeStreamExtensions.AsInputStream(Stream) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Importante
Esta API não está em conformidade com CLS.
Converte um fluxo gerido nas aplicações .NET for Windows Store num fluxo de entrada no Windows Runtime.
public:
[System::Runtime::CompilerServices::Extension]
static Windows::Storage::Streams::IInputStream ^ AsInputStream(System::IO::Stream ^ stream);
[System.CLSCompliant(false)]
public static Windows.Storage.Streams.IInputStream AsInputStream(this System.IO.Stream stream);
[<System.CLSCompliant(false)>]
static member AsInputStream : System.IO.Stream -> Windows.Storage.Streams.IInputStream
<Extension()>
Public Function AsInputStream (stream As Stream) As IInputStream
Parâmetros
- stream
- Stream
O stream para converter.
Devoluções
Um objeto Windows Runtime Windows.Storage.Streams.IInputStream que representa o fluxo convertido.
- Atributos
Exceções
stream é null.
O stream não suporta leitura.
Exemplos
O exemplo seguinte mostra como usar os métodos AsInputStream e AsOutputStream para converter um fluxo gerido para e a partir de um fluxo no Windows Runtime.
using System;
using System.IO;
using System.Text;
using Windows.Storage;
using Windows.Storage.Streams;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;
namespace ExampleApplication
{
public sealed partial class BlankPage : Page
{
System.Text.UnicodeEncoding ue;
byte[] bytesToWrite;
byte[] bytesToAdd;
int totalBytes;
public BlankPage()
{
this.InitializeComponent();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
ue = new System.Text.UnicodeEncoding();
bytesToWrite = ue.GetBytes("example text to write to memory stream");
bytesToAdd = ue.GetBytes("text added through datawriter");
totalBytes = bytesToWrite.Length + bytesToAdd.Length;
}
private async void CreateButton_Click(object sender, RoutedEventArgs e)
{
byte[] bytesRead = new byte[totalBytes];
using (MemoryStream memStream = new MemoryStream(totalBytes))
{
await memStream.WriteAsync(bytesToWrite, 0, bytesToWrite.Length);
DataWriter writer = new DataWriter(memStream.AsOutputStream());
writer.WriteBytes(bytesToAdd);
await writer.StoreAsync();
memStream.Seek(0, SeekOrigin.Begin);
DataReader reader = new DataReader(memStream.AsInputStream());
await reader.LoadAsync((uint)totalBytes);
reader.ReadBytes(bytesRead);
Results.Text = ue.GetString(bytesRead, 0, bytesRead.Length);
}
}
}
}
Imports Windows.Storage.Streams
Public NotInheritable Class BlankPage
Inherits Page
Dim ue As System.Text.UnicodeEncoding
Dim bytesToWrite() As Byte
Dim bytesToAdd() As Byte
Dim totalBytes As Integer
Protected Overrides Sub OnNavigatedTo(e As Navigation.NavigationEventArgs)
ue = New System.Text.UnicodeEncoding()
bytesToWrite = ue.GetBytes("example text to write to memory stream")
bytesToAdd = ue.GetBytes("text added through datawriter")
totalBytes = bytesToWrite.Length + bytesToAdd.Length
End Sub
Private Async Sub CreateButton_Click(sender As Object, e As RoutedEventArgs)
Dim bytesRead(totalBytes - 1) As Byte
Using memStream As MemoryStream = New MemoryStream(totalBytes)
Await memStream.WriteAsync(bytesToWrite, 0, bytesToWrite.Length)
Dim writer As DataWriter = New DataWriter(memStream.AsOutputStream())
writer.WriteBytes(bytesToAdd)
Await writer.StoreAsync()
memStream.Seek(0, SeekOrigin.Begin)
Dim reader As DataReader = New DataReader(memStream.AsInputStream())
Await reader.LoadAsync(CType(totalBytes, UInteger))
reader.ReadBytes(bytesRead)
Results.Text = ue.GetString(bytesRead, 0, bytesRead.Length)
End Using
End Sub
End Class
Aqui está o código XAML associado ao exemplo anterior.
<Page
x:Class="ExampleApplication.BlankPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:ExampleApplication"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<StackPanel Background="{StaticResource ApplicationPageBackgroundBrush}" VerticalAlignment="Center" HorizontalAlignment="Center">
<Button Name="CreateButton" Content="Write and read with stream" Click="CreateButton_Click"></Button>
<TextBlock Name="Results"></TextBlock>
</StackPanel>
</Page>
Observações
Note
Em Visual Basic e C#, pode chamar este método como método de instância em qualquer objeto do tipo Stream. Quando usar a sintaxe do método de instância para chamar este método, omita o primeiro parâmetro. Para mais informações, consulte