【问题标题】:Convert IBuffer to IRandomAccessStream将 IBuffer 转换为 IRandomAccessStream
【发布时间】:2016-02-26 01:58:08
【问题描述】:

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

【问题讨论】:

  • 为什么一定要有直接的方式?
  • “必须有直接的方法”不要赌它,这个 COM 的东西在设计上真的是不透明的。除非你可以直接 QueryInterface 后者,否则你几乎是 SOL。
  • @DStanley 因为 UWP 正试图在每一步根除 .net 等,正如开发 UWP 应用程序所表明的那样。
  • @Blindy 查看我之前的评论。
  • “UWP 正在尝试根除 .net” 没有 UWP 使用完整 .net 框架子集的超集。它不是想摆脱它

标签: c# .net windows-store-apps win-universal-app uwp


【解决方案1】:

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

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

如果编写这两个函数调用让您感到痛苦,您可以编写一个辅助函数。

static IRandomAccessStream AsRandomAccessStream(this IBuffer buffer)
{
    return buffer.AsStream().AsRandomAccessStream();
}

那你就可以了

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-14
    • 2016-04-07
    • 2014-05-17
    • 2013-04-30
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多