Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将IBuffer转换为irandomaccesstream_C#_.net_Windows Store Apps_Win Universal App_Uwp - Fatal编程技术网

C# 将IBuffer转换为irandomaccesstream

C# 将IBuffer转换为irandomaccesstream,c#,.net,windows-store-apps,win-universal-app,uwp,C#,.net,Windows Store Apps,Win Universal App,Uwp,我知道我可以将IBuffer转换为流,然后从那里转换为iRandomaccesstream。但是必须有一个直接的方法。IBuffer不是一个流,所以你需要有一些东西使一个适应另一个。在.NET中,您可以使用流 IBuffer buffer = ...; IRandomAccessStream randomAccessStream = buffer.AsStream().AsRandomAccessStream(); 如果编写这两个函数调用很麻烦,那么可以编写一个helper函数 static

我知道我可以将
IBuffer
转换为
,然后从那里转换为
iRandomaccesstream
。但是必须有一个直接的方法。

IBuffer
不是一个流,所以你需要有一些东西使一个适应另一个。在.NET中,您可以使用

IBuffer buffer = ...;
IRandomAccessStream randomAccessStream = buffer.AsStream().AsRandomAccessStream();
如果编写这两个函数调用很麻烦,那么可以编写一个helper函数

static IRandomAccessStream AsRandomAccessStream(this IBuffer buffer)
{
    return buffer.AsStream().AsRandomAccessStream();
}
那你就可以了

IBuffer buffer = ...;
IRandomAccessStream randomAccessStream = buffer.AsRandomAccessStream();

IBuffer
不是一个流,因此您需要一些东西来适应其中一个流。在.NET中,您可以使用

IBuffer buffer = ...;
IRandomAccessStream randomAccessStream = buffer.AsStream().AsRandomAccessStream();
如果编写这两个函数调用很麻烦,那么可以编写一个helper函数

static IRandomAccessStream AsRandomAccessStream(this IBuffer buffer)
{
    return buffer.AsStream().AsRandomAccessStream();
}
那你就可以了

IBuffer buffer = ...;
IRandomAccessStream randomAccessStream = buffer.AsRandomAccessStream();

为什么一定要有一个直接的方法呢?“一定要有一个直接的方法”不要打赌,这个COM的东西在设计上确实是不透明的。除非你可以直接
QueryInterface
查询后者,否则你就太棒了。@DStanley因为UWP在开发UWP应用程序的过程中,每一步都在试图根除.net等,正如开发UWP应用程序所显示的那样。@Blindy看到我之前的评论。“UWP在试图根除.net”没有UWP使用完整.net框架子集的超集。它并没有试图摆脱它,为什么一定要有一个直接的方法?“一定要有一个直接的方法”不要打赌,这个COM的东西是真正不透明的设计。除非你可以直接
QueryInterface
查询后者,否则你就太棒了。@DStanley因为UWP在开发UWP应用程序的过程中,每一步都在试图根除.net等,正如开发UWP应用程序所显示的那样。@Blindy看到我之前的评论。“UWP在试图根除.net”没有UWP使用完整.net框架子集的超集。它不是想摆脱它