WindowsRuntimeStreamExtensions.AsInputStream(Stream) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Ważne
Ten interfejs API nie jest zgodny ze specyfikacją CLS.
Konwertuje strumień zarządzany na platformie .NET dla aplikacji ze Sklepu Windows na strumień wejściowy w środowisko wykonawcze systemu Windows.
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
Parametry
- stream
- Stream
Strumień do przekonwertowania.
Zwraca
Obiekt środowisko wykonawcze systemu Windows IInputStream reprezentujący przekonwertowany strumień.
- Atrybuty
Wyjątki
stream
to null
.
Strumień nie obsługuje odczytu.
Przykłady
W poniższym przykładzie pokazano, jak używać AsInputStream
metod i AsOutputStream do konwertowania zarządzanego strumienia na i ze strumienia w środowisko wykonawcze systemu Windows.
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
Oto kod XAML skojarzony z poprzednim przykładem.
<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>
Uwagi
Uwaga
W języku Visual Basic i C#można wywołać tę metodę jako metodę wystąpienia w dowolnym obiekcie typu Stream. Gdy w celu wywołania tej metody jest używana składnia metody wystąpienia, należy pominąć pierwszy parametr. Aby uzyskać więcej informacji, zobacz Metody rozszerzeń (Visual Basic) lub Metody rozszerzeń (Przewodnik programowania w języku C#).