WindowsRuntimeStreamExtensions.AsOutputStream(Stream) WindowsRuntimeStreamExtensions.AsOutputStream(Stream) WindowsRuntimeStreamExtensions.AsOutputStream(Stream) Method

定義

重要

この API は CLS 準拠ではありません。

Windows ストア アプリ用 .NET のマネージド ストリームを Windows ランタイムの出力ストリームに変換します。Converts a managed stream in the .NET for Windows Store apps to an output stream in the Windows Runtime.

public:
[System::Runtime::CompilerServices::Extension]
 static Windows::Storage::Streams::IOutputStream ^ AsOutputStream(System::IO::Stream ^ stream);
[System.CLSCompliant(false)]
public static Windows.Storage.Streams.IOutputStream AsOutputStream (this System.IO.Stream stream);
static member AsOutputStream : System.IO.Stream -> Windows.Storage.Streams.IOutputStream

パラメーター

stream
Stream Stream Stream

変換するストリーム。The stream to convert.

戻り値

変換されたストリームを表す Windows ランタイム IOutputStream オブジェクト。A Windows Runtime IOutputStream object that represents the converted stream.

例外

streamnullです。stream is null.

ストリームは読み取りをサポートしません。The stream does not support reading.

次の例は、メソッドAsInputStreamAsOutputStream> メソッドを使用して、Windows ランタイム内のストリームとの間でマネージストリームを変換する方法を示しています。The following example shows how to use the AsInputStream and AsOutputStream> methods to convert a managed stream to and from a stream in the 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

前の例に関連付けられている XAML コードを次に示します。Here's the XAML code that is associated with the previous example.

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

注釈

注意

Visual Basic とC#では、このメソッドを型Streamの任意のオブジェクトのインスタンスメソッドとして呼び出すことができます。In Visual Basic and C#, you can call this method as an instance method on any object of type Stream. インスタンス メソッド構文を使用してこのメソッドを呼び出す場合は、最初のパラメーターを省略します。When you use instance method syntax to call this method, omit the first parameter. 詳細については、「拡張メソッド (Visual Basic) 」または「拡張メソッド (C#プログラミングガイド)」を参照してください。For more information, see Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).

適用対象