WindowsRuntimeStreamExtensions.AsInputStream(Stream) Yöntem

Tanım

Önemli

Bu API, CLS uyumlu değildir.

Windows Mağazası uygulamaları için .NET'te yönetilen bir akışı Windows Çalışma Zamanı giriş akışına dönüştürür.

C#
[System.CLSCompliant(false)]
public static Windows.Storage.Streams.IInputStream AsInputStream (this System.IO.Stream stream);

Parametreler

stream
Stream

Dönüştürülecek akış.

Döndürülenler

Dönüştürülen akışı temsil eden bir Windows Çalışma Zamanı IInputStream nesnesi.

Öznitelikler

Özel durumlar

stream, null değeridir.

Akış okumayı desteklemiyor.

Örnekler

Aşağıdaki örnekte, yönetilen akışı Windows Çalışma Zamanı bir akışa ve akıştan dönüştürmek için ve AsOutputStream yöntemlerinin nasıl kullanılacağı AsInputStream gösterilmektedir.

C#
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);
            }
        }
    }
}

Önceki örnekle ilişkili XAML kodu aşağıda verilmiştir.

XAML
<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>

Açıklamalar

Not

Visual Basic ve C# içinde, bu yöntemi türündeki Streamherhangi bir nesnede örnek yöntemi olarak çağırabilirsiniz. Bu yöntemi çağırmak için örnek yöntemi sözdizimini kullandığınızda, ilk parametreyi yok sayın. Daha fazla bilgi için bkz . Uzantı Yöntemleri (Visual Basic) veya Uzantı Yöntemleri (C# Programlama Kılavuzu).

Şunlara uygulanır

Ürün Sürümler
UWP 10.0